私は今日、プロジェクトのマニフェストを生成するために maven-bundle-plugin を使用しています。他の制約により、私のモジュールは「jar」パッケージを使用しています (「バンドル」パッケージは使用できません)。現在、私の pom は次のようになっています。
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<instructions>
...
</instructions>
</configuration>
</execution>
</executions>
</plugin>
注釈付きコンポーネントから 'Service-Component' ヘッダーと DS xml 記述子を生成したいのですが、" <_dsannotations>*</_dsannotations>
" を追加してもうまくいきません:
- Service-Component ヘッダーは正しく生成されますが、xml が jar に存在しません
- クリーンなゴールなしで Maven プロジェクトを再構築すると、「Service-Component」ヘッダーに重複した参照が含まれます: コードを掘り下げた後、プラグインは target/classes/META-INF/MANIFEST.MF から生成された古いマニフェストを使用してマージします新しく生成されたものと一緒に。次に、「Service-Component」が連結されます
では、これが機能するように pom を構成するにはどうすればよいですか? 今のところ、「unpackBundle」オプション (バンドルに xml を含めるため) と空の src/main/resource/MANIFEST.MF (古いマニフェストのマージをバイパスするため) を使用します。 -)
さらに、「bnd-maven-plugin」は意図したとおりに機能しますが、親 pom の「グローバル構成」、Bundle-SymbolicName または Bundle-Name の生成として、maven との統合が軽すぎる (または文書化されていない) 可能性があります。など
ありがとう!