我正在调整现有的库集合,将它们构建为 OSGi 包。这是一个多模块的 Maven 项目,具有多层 POM 继承和聚合。理想情况下,插件配置将仅放置在父 POM 中。
该项目由100多个罐子组成。已经有一个包含整个库并导出所有包的巨型包。我的努力旨在使库更加模块化,这是首先将它们作为 OSGi 捆绑包的主要原因。
主要问题是这个库有一个拆分包的噩梦,我无法更改包结构。我正在尝试使用OSGi in ActionRequire-Bundle
中的建议来解决问题,即使书中提到这不是一个好习惯。我尝试了使用名为“split”的任意属性来分隔包的各个部分并仅导入某些包的建议。但是由于提供相同软件包的捆绑包数量众多,因此配置起来太复杂了。Import-Package
我的问题是,如果可能的话,如何配置maven-bundle-plugin
<Require-Bundle>
指令以使用通配符(例如 *)作为告诉它使用所有 Maven 依赖项的一种形式,而不必手动列出所有包名称和版本;即是否有替代方法:
<Require-Bundle>lib-api; version=${project.version}</Require-Bundle>
使用某种通配符匹配并且可以放在父 POM 中?