cei*_*ors 4 osgi maven bnd maven-bundle-plugin
如何使用maven-bundle-plugin中的bnd指令指令?bnd指令以' - '字符开头,这是一个无效的xml标记:
<-foo>bar</-foo>
Run Code Online (Sandbox Code Playgroud)
我已经检查了maven-bundle-plugin 的官方页面,他们说它应该以' - '字符开头:
指令 - 任何以" - "字符开头的指令都被视为指示BND执行某些特殊处理而不会复制到清单的指令.
该包目标的描述似乎并不具备这种信息也是如此.执行一些特殊处理并且不会复制到清单.
将' - '字符替换为'_'字符.这将有效:
<_foo>bar</_foo>
Run Code Online (Sandbox Code Playgroud)
它实际上在FAQ页面中含糊不清地描述:
(这是POM中的<_exportcontents>,因为标签不能以' - '开头)
这种改进也可以在他们的问题跟踪器中找到.
有一种替代方法可以使用更少的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>
Run Code Online (Sandbox Code Playgroud)
并提供一个文件(这里: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: *
Run Code Online (Sandbox Code Playgroud)
备注:有是在文件名前_include标签减号!
可以在这里找到一个真实的例子:
| 归档时间: |
|
| 查看次数: |
1618 次 |
| 最近记录: |