如何使用来自 maven-bundle-plugin 的 bnd 指令指令?bnd 指令以“-”字符开头,这是一个无效的 xml 标记:
<-foo>bar</-foo>
我检查了maven-bundle-plugin 的官方页面,他们说它也应该以“-”字符开头:
指令 - 任何以“-”字符开头的指令都被认为是通知 BND 执行某些特殊处理的指令,并且不会复制到清单中。
捆绑目标描述似乎也没有此信息。执行一些特殊处理并且不会复制到清单中。
有另一种方法来定义 bnd 指令,减少 xml 混乱:
像这样配置插件:
<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标签有减号!
一个真实的例子可以在这里找到: