1

私は今日、プロジェクトのマニフェストを生成するために 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>" を追加してもうまくいきません:

  1. Service-Component ヘッダーは正しく生成されますが、xml が jar に存在しません
  2. クリーンなゴールなしで 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 との統合が軽すぎる (または文書化されていない) 可能性があります。など

ありがとう!

4

1 に答える 1

1

bnd と maven の両方に近い maven 用の新しいプラグインがあります。このプラグインは jar ターゲットを引き継がず、Maven フェーズに適切に従います。

http://njbartlett.name/2015/03/27/announce-bnd-maven-plugin.htmlをご覧ください。

于 2016-01-21T08:12:27.220 に答える