我正在将一组现有的库构建为OSGi捆绑包。这是一个多模块Maven项目,具有几个层次的POM继承和聚合。理想情况下,插件配置应仅放置在父POM中。
该项目由100多个JAR文件组成。已经有一个超级捆绑包涵盖了整个库并导出所有包。我的努力旨在使库更加模块化,这也是首次将它们作为OSGi捆绑包的主要原因。
主要问题是该库存在分割包问题,而我无法更改包结构。我试图使用“Require-Bundle”来解决此问题,正如书籍“OSGi in Action”中推荐的那样,尽管该书提到这不是一个好的做法。我尝试了使用名为“split”的任意属性在“Import-Package”中分离捆绑包的部分并仅导入某些包的建议。但由于提供相同包的捆绑包数量太多,这种方法配置起来过于复杂。
我的问题是如何配置“maven-bundle-plugin”“Require-Bundle”指令,如果可能的话,使用通配符(例如*)作为告诉它使用所有Maven依赖项的形式,而不必手动列出所有捆绑包名称和版本;即是否有替代方法:
使用某种通配符匹配方式,并将其放在父 POM 中的内容?
该项目由100多个JAR文件组成。已经有一个超级捆绑包涵盖了整个库并导出所有包。我的努力旨在使库更加模块化,这也是首次将它们作为OSGi捆绑包的主要原因。
主要问题是该库存在分割包问题,而我无法更改包结构。我试图使用“Require-Bundle”来解决此问题,正如书籍“OSGi in Action”中推荐的那样,尽管该书提到这不是一个好的做法。我尝试了使用名为“split”的任意属性在“Import-Package”中分离捆绑包的部分并仅导入某些包的建议。但由于提供相同包的捆绑包数量太多,这种方法配置起来过于复杂。
我的问题是如何配置“maven-bundle-plugin”“Require-Bundle”指令,如果可能的话,使用通配符(例如*)作为告诉它使用所有Maven依赖项的形式,而不必手动列出所有捆绑包名称和版本;即是否有替代方法:
<Require-Bundle>lib-api; version=${project.version}</Require-Bundle>
使用某种通配符匹配方式,并将其放在父 POM 中的内容?
<Require-Bundle>
中插入的所有捆绑包都是在构建时可用的Maven依赖关系。 - Boj