2017-10-19 87 views
1

我正在为Opendaylight Carbon开发一个功能(由捆绑组成)。opendaylight:如何包含库jar文件?

我想在我的功能包括第三方jar(库)。我怎样才能做到这一点?我不想将它作为一个捆绑包 - 就像一个链接到我的捆绑包的jar文件库一样。

我不想捆绑这个第三方jar。我只是想包括它,以便它可以通过我的捆绑包解决。谢谢。

回答

1

你不能同时“想把它作为一个捆绑包”NOR或者“想要捆绑这个第三方jar”。您希望OSGi(卡拉夫)从您的第三方JAR上载入课程,然后?

但捆绑也许比你想象的更容易,因为maven-bundle-plugin(连同BND供内部使用的),基本上可以为你做所有的辛勤工作,如果你很好地通过Embed-Dependency要求它。

+0

我认为bundle已加载 - 每个都在它自己的类加载器中 - 这意味着我无法直接从另一个(?)调用一个bundle的方法 – LostInTheFrequencyDomain

+0

是的,bundle分别加载到它们自己的ClassLoader中(但可以通过Export-在MANIFEST.MF中打包和导入包)。所以,如果你有一个第三方JAR最初不是一个有效的OSGi Bundle(即它的MANIFEST.MF中没有Export-Package&Co.),那么你的选择是将第三方JAR“重新打包”为新的JAR这是一个有效的包,并从你的包中导入每个东西,或者将非OSGi第三方JAR嵌入到你自己的包中。 HTH? – vorburger