处理拆分包:需要捆绑带maven-bundle-plugin

时间:2013-11-05 02:47:57

标签: java maven osgi apache-felix maven-bundle-plugin

我正在调整现有的库集合,将它们构建为OSGi包。它是一个多模块Maven项目,具有多层POM继承和聚合。理想情况下,插件配置将仅放置在父POM中。

该项目由100多个罐子组成。已经有一个包含整个库并导出所有包的大型包。我的努力旨在使图书馆更加模块化,这是将它们作为OSGi捆绑的首要原因。

主要问题是这个库有一个拆分包噩梦,我无法改变包结构。我正在尝试按照 OSGi in Action 一书中的建议使用Require-Bundle来解决问题,尽管该书提到它并不是一个好习惯。我尝试了在Import-Package中使用名为“split”的任意属性来分离bundle的各个部分并仅导入某些包的建议。但是由于提供相同包的捆绑包的数量,结果太复杂,无法配置。

我的问题是如何配置maven-bundle-plugin <Require-Bundle>指令,如果可能的话,使用通配符(例如*)作为告诉它使用全部的形式Maven依赖项,而不必手动列出所有包名称和版本;即是否有替代方案:

<Require-Bundle>lib-api; version=${project.version}</Require-Bundle>

使用某种通配符匹配,可以放在父POM中吗?

1 个答案:

答案 0 :(得分:1)

简而言之,没有。 bnd不支持Require-Bundle,它将其视为普通标题。