我正在调整现有的库集合,将它们构建为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中吗?
答案 0 :(得分:1)
简而言之,没有。 bnd不支持Require-Bundle,它将其视为普通标题。