5.2. 既存の Maven プロジェクトの変更
5.2.1. 概要
すでに Maven プロジェクトがあり、OSGi バンドルを生成するように変更する場合は、以下の手順を実行します。
5.2.2. パッケージタイプのバンドルへの変更
プロジェクトの pom.xml
ファイルでパッケージタイプを bundle
に変更して、OSGi バンドルを生成するよう Maven を設定します。以下の例のように、packaging
要素の内容を bundle
に変更します。
<project ... >
...
<packaging>bundle</packaging>
...
</project>
この設定により、Maven バンドルプラグイン maven-bundle-plugin
を選択され、このプロジェクトのパッケージ化が実行されます。ただし、この設定自体は、バンドルプラグインを POM に明示的に追加するまで効果がありません。
5.2.3. バンドルプラグインの POM への追加
Maven バンドルプラグインを追加するには、以下のサンプル plugin
要素をコピーし、プロジェクトの pom.xml
ファイルの project/build/plugins
セクションに貼り付けます。
<project ... > ... <build> <defaultGoal>install</defaultGoal> <plugins> ... <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>3.3.0</version> <extensions>true</extensions> <configuration> <instructions> <Bundle-SymbolicName>${project.groupId}.${project.artifactId} </Bundle-SymbolicName> <Import-Package>*</Import-Package> </instructions> </configuration> </plugin> </plugins> </build> ... </project>
バンドルプラグインは instructions
要素の設定によって設定されます。
5.2.4. バンドルプラグインのカスタマイズ
Apache CXF のバンドルプラグインの設定に関する具体的な推奨事項は、「Web サービスのバンドルへのパッケージ化」 を参照してください。
5.2.5. JDK コンパイラーのバージョンのカスタマイズ
ほとんどの場合、POM ファイルで JDK バージョンを指定する必要があります。コードでジェネリック、静的インポートなどの Java 言語の最新機能を使用しており、POM で JDK バージョンをカスタマイズしていない場合、Maven はソースコードのコンパイルに失敗します。JAVA_HOME
および PATH
環境変数を JDK の正しい値に設定するだけでは不十分で、POM ファイルも変更する必要があります。
JDK 1.8 で導入された Java 言語機能を受け入れるように POM ファイルを設定するには、以下の maven-compiler-plugin
プラグイン設定を POM に追加します (存在しない場合)。
<project ... > ... <build> <defaultGoal>install</defaultGoal> <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> ... </project>