Eclipse で Maven バンドル プラグインを使用して osgi バンドルを作成しています。私のアプリケーションには、ほとんどの Java クラスが依存している非 Maven jar ファイルがあります。私の pom.xml ファイルは次のとおりです。
<build>
...
<plugins>
....
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.2.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Activator>org.myapp.Activator</Bundle-Activator>
<Include-Resource>a1.jar=${basedir}/src/main/java/lib/a1.jar,a2.jar=${basedir}/src/main/java/lib/a2.jar,a3.jar=${basedir}/src/main/java/lib/a3.jar</Include-Resource>
<Bundle-ClassPath>.,${basedir}/src/main/java/lib/a1.jar,${basedir}/src/main/java/lib/a2.jar,${basedir}/src/main/java/lib/a3.jar</Bundle-ClassPath>
</instructions>
</configuration>
</plugin>
<!-- Maven Compiler plugin -->
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<includes>
<include>${project.basedir}/src/main/java/**</include>
</includes>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
....
</plugins>
</build>
これを使用することで、アプリケーションを正常にビルドでき、最終的な jar バンドルにも必要なすべての jar ファイルが含まれていますが、問題は、最終的なバンドルに .class ファイルがなく、ターゲット ディレクトリにも .class ファイルが含まれていないことです。
インクルード タグを maven-compiler-plugin から削除すると、class does not exist エラーが発生しました。
ですから、ターゲットディレクトリと最終バンドルに.classファイルを作成しない上記のコードの問題は何か教えてください。