2013-07-03 59 views
4

如何使用maven-bundle-plugin的bnd指令指令? BND指令都開始用「 - 」字符,這是無效的XML標記:如何使用maven-bundle-plugin中的bnd指令?

<-foo>bar</-foo> 

我已經檢查了official page Maven的束-插件,他們說,這應該與開始「 - 」字符:

指令 - 任何以' - '開頭的指令都被認爲是通知BND執行一些特殊處理並且不被複制到清單的指令。

bundle goal description似乎也沒有這方面的信息。 執行一些特殊的處理,而不是複製到清單。

回答

8

用'_'字符替換' - '字符。這將工作:

<_foo>bar</_foo> 

它實際上是隱約在FAQ頁面描述:

(這是< _exportcontents>在POM,因爲標籤不能以 ' - ')

這個improvement也可以在他們的問題跟蹤器中找到。

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 fileosgi.bnd file

+0

其實我現在用這個。問題是,-include本身就是一個bnd指令。因此,這個問題。提高,因爲它是有幫助的。 – ceilfors