我正在構建RCP4應用程序。將非osgi jar添加到RCP4項目
我有兩個非osgi罐子叫a.jar和b.jar。兩個罐子都有很多非osgi依賴關係。 a.jar的一個依賴是b.jar。因此,層次結構如下所示:
My application
|--a.jar
|----aDependency1.jar
|----aDependency2.jar
|----aDependencyN.jar
|----b.jar
|------bDependency1.jar
|------bDependency2.jar
|------bDependencyN.jar
一些bDependencyN.jars的不同版本的aDependencyN.jars 的(一個例子就是共享記錄-1.0.4.jar VS共享記錄-1.1.2 .jar)
我需要從我的RCP4應用程序直接引用a.jar和b.jar。換句話說,當我寫的代碼,我會從a.jar文件導入包和b.jar)
這是最好的辦法:
通過命令行使用BND 2.4把所有非osgi罐入osgi。然後我通過目標文件將每個jar添加到我的項目中
創建一個新項目「從現有JAR歸檔插件」,選擇a.jar及其所有依賴項並將其導出爲「可部署插件和片段「叫a.with.libs.jar。我對b.jar也做了同樣的事情並創建了b.with.libs.jar。然後通過目標文件將這兩個新罐添加到我的項目中
創建一個新項目「從現有JAR歸檔插件」,並選擇a.jar及其所有依賴關係,以及b.jar和全部它的依賴關係並將其導出爲一個名爲ab.with.libs.jar的「可部署插件和片段」。然後我通過目標文件將新罐添加到我的項目中
有沒有比上述建議更好的方法?
嗨,感謝您的回覆。我目前的項目不使用Maven,我以前從未使用過Gradle。 bnd-platform網站上的文檔對我來說似乎有點高級,我不知道從哪裏開始設置反映上述示例(所有本地jar)的正確gradle文件。 – ekjcfn3902039
如果它都是本地Jars(而不是Maven依賴),那麼bnd-platform會失去一些好處,因爲它不能自動添加傳遞依賴。作爲出發點,您可以使用上面提到的模板,從文檔中您只需要本地依賴項部分添加Jars:https://github.com/stempler/bnd-platform#local-dependencies – stempler