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>