4

maven-bundle-plugin から bnd ディレクティブ命令を使用するにはどうすればよいですか? bnd ディレクティブが「-」文字で始まっています。これは無効な xml タグです:

<-foo>bar</-foo>

maven-bundle-plugin の公式ページを確認したところ、「-」文字でも開始する必要があるとのことでした。

ディレクティブ - 「-」文字で始まる命令は、BND に特別な処理を実行するように通知するディレクティブと見なされ、マニフェストにコピーされません。

バンドルの目標の説明にもこの情報がないようです。いくつかの特別な処理を実行し、マニフェストにコピーされません。

4

2 に答える 2

8

「-」文字を「_」文字に置き換えます。これはうまくいきます:

<_foo>bar</_foo>

実際にはFAQページで漠然と説明されています:

(タグは '-' で開始できないため、これは POM の <_exportcontents> です)

この改善は、課題トラッカーでも確認できます。

于 2013-07-03T12:34:28.213 に答える
5

xml の乱雑さを抑えて bnd 命令を定義する別の方法があります。

プラグインを次のように構成します。

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <extensions>true</extensions>
    <configuration>
        <instructions>
            <_include>-osgi.bnd</_include>
        </instructions>
    </configuration>
</plugin>

そして、ファイル (ここでは osgi.bnd) に指示を提供します。

 Import-Package: !javax.servlet,\
  !org.apache.avalon.framework.logger,\
  org.apache.commons.collections;version="[1.0,2)",\
  org.apache.commons.collections.comparators;version="[1.0,2)",\
  org.apache.commons.collections.keyvalue;version="[1.0,2)",\
  org.apache.commons.collections.list;version="[1.0,2)",\
  org.apache.commons.collections.set;version="[1.0,2)",\
  !org.apache.log,\
  !org.apache.log4j,\
  *
 Export-Package: *

注意:ファイル名の前の _include タグにマイナス記号があります!

実際の例は次の場所にあります。

pom.xml ファイルosgi.bnd ファイル.

于 2013-07-10T15:13:23.933 に答える