如何使用maven-bundle-plugin的bnd指令指令? bnd指令以' - '开头。字符,这是一个无效的xml标记:
<-foo>bar</-foo>
我已经检查了official page的maven-bundle-plugin,他们说它应该以&#39; - &#39;角色也是:
指令 - 任何以&#39; - &#39;开头的指令字符被认为是一个指令,通知BND执行某些特殊处理,而不是复制到清单。
bundle goal description似乎也没有此信息。 执行一些特殊处理而不会复制到清单。
答案 0 :(得分:8)
将' - '字符替换为'_'字符。这将有效:
<_foo>bar</_foo>
实际上在FAQ页面中含糊其词:
(这是POM中的&lt; _exportcontents&gt;因为标签不能以' - '开头)
这个improvement也可以在他们的问题跟踪器中找到。
答案 1 :(得分: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标记中的 是减号!
现实生活中的例子可以在这里找到: