スタート。
あなたが問題を抱えていることとして、CIビルドとパッケージの種類は
bundle
(末尾参照)であれば、あなたは
extensions
と
supportedProjectTypes
を設定失敗MavenのリポジトリとのM2eを確保するのmaven-バンドル・プラグインを使用しました。
早い段階であなたの最もリスクの高いコア/外部依存関係をテストします - たとえば、あなたが永続化のためのJPAを使用している場合、プロバイダは、ドメインバンドルおよびJDBCドライバでOSGi環境で動作することを確認してください。
は、Java EE/Karafまたは乙女座で春を見てから移行している場合。しかし、あなたのコンポーネントが組み込みシステム用であるか、外部依存関係がない場合は、FelixまたはEquinoxで十分です(ただし、その場合はpax-urlプロジェクトをチェックしてください)。
は、ドメイン/技術について、もう少し具体的には、あなたの質問を編集する価値があるかもしれませんか?
は日食:Eclipseが唯一のプロジェクトが最初に設定されている場合、のM2eのライフサイクルの問題は、痛みのビットであるかもしれないことを生成しますが、それは昔のEclipseプラグインを使用するよりもはるかに良いです。
以下は、他の方法で変更することなく、既存の成果物にマニフェストエントリを追加します。 maven-bundle-pluginによって生成されたMANIFEST.MFを標準のmaven jarおよびwarプラグインに使用するよう指示します。
親POMでこれを入れて:
<pluginManagement>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<archive>
<addMavenDescriptor>true</addMavenDescriptor>
</archive>
<supportedProjectTypes>
<supportedProjectType>jar</supportedProjectType>
<supportedProjectType>war</supportedProjectType>
</supportedProjectTypes>
<instructions>
<Built-By>${project.organization.name}</Built-By>
<Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
<Bundle-ContactAddress>${project.organization.url}</Bundle-ContactAddress>
<Bundle-Description>${project.description}</Bundle-Description>
<Bundle-DocURL>${bundle.doc.url}</Bundle-DocURL>
<Bundle-Category>${bundle.category}</Bundle-Category>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Import-Package>*</Import-Package>
<Export-Package>*</Export-Package>
</instructions>
</configuration>
<executions>
<execution>
<id>bundle</id>
<goals>
<goal>manifest</goal>
</goals>
<phase>prepare-package</phase>
<inherited>true</inherited>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>create-war</id>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
<inherited>true</inherited>
</execution>
</executions>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</pluginManagement>
は、子のPOMに、あなたは、単に行うことがあります。
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
</plugin>
<!-- Below is mutually exclusive: Either jar or war plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
</plugins>
</build>
私はこれらのバンドルを実行する2つのオプションを持っています1)組み込みApache Felix witin WAR 2)Witin WAB –
私は技術を使って投稿を更新しました。あなたはティコに挑戦しましたか? –
非常に有益なポスト - POMのコンテンツは特に便利です、あなたにearcamありがとうございます。ユーザーへの注意:JAR上で実行している場合は、maven-war-pluginセクションをコメントアウトする必要があります。そうしないと、パッケージの目標は失敗します。 – KomodoDave