2017-10-19 86 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