处理OSGI& amp;时的最佳实践第三方图书馆

时间:2017-06-01 09:55:54

标签: java maven osgi maven-bundle-plugin

我很难找到合理的方法来管理足够大的代码库,更具体地说,是如何为任何给定的bundle管理import语句。

问题是,如果你有一个捆绑包有自己的依赖关系到其他第三方库,如果你选择嵌入其中一些(在我的情况下,我),maven-bundle-plugin也将扫描包从这些库中添加它们作为imported捆绑(这完全违反直觉)。

我的工作是在你的*语句中删除通配符import,但这意味着现在必须手动维护导入列表。

那么你们如何解决这个问题呢?我在这里错过了什么吗?

非常感谢任何建议

1 个答案:

答案 0 :(得分:2)

捆绑非OSGi第三方库有时很困难。 maven-bundle-plugin通常只通过嵌入和导入它所使用的内容来做得很好。

问题在于许多库都有很多依赖项,特别是很多可选的依赖项。在这些情况下,maven bundle插件通常很小心并且输入的数量超过了必要的数量。如果你确定不需要某些东西,你可以通过指定来禁止导入:

Import-Packages: !somepackage, *

我个人的做法是尽量避免使用具有大量外部依赖关系的库。如果我无法避免它们,那么我检查已捆绑了许多库的servicemix包。