我試圖運行在命令行中使用以下命令的OSGI模塊:如何從命令行運行osgi模塊?
java -jar target/module.jar -console
不過,我總是得到
no main manifest attribute, in target/module.jar
當我extraxct JAR文件中的MANIFEST.MF是嗎?
我忘記了哪個表單?
我試圖運行在命令行中使用以下命令的OSGI模塊:如何從命令行運行osgi模塊?
java -jar target/module.jar -console
不過,我總是得到
no main manifest attribute, in target/module.jar
當我extraxct JAR文件中的MANIFEST.MF是嗎?
我忘記了哪個表單?
您需要創建一個可執行的JAR。然後這個JAR包含一個用於OSGi的框架,它知道在哪裏可以找到這些模塊。
Bndtools爲此具有導出任務。您必須創建一個bndrun文件,添加初始需求,解決它,然後導出它。您也可以使用Gradle將其自動化。
您可以按照OSGi enRoute Quick Start教程,看看如何構建一個OSGi應用程序作爲一個可執行的JAR。
你不能簡單地通過自身運行包。一個bundle需要在OSGi框架內運行。所以你可以例如下載Apache felix,並將你的軟件包放入felix目錄,該目錄提取要加載的軟件包。在這種情況下,你會開始felix,然後felix會加載你的包。
什麼彼得建議是定義你的包和其他設置的集合在bndrun文件,並創建包含OSGi框架以及你的軟件包中的脂肪罐子。好的是bnd(工具)提供了很好的工具來完成這個專業。
因此,儘管起牀,並與第一個解決方案運行速度更快,也不可避免地會涉及手工工作。 bndtools方法可以在Maven構建中完全自動化包裝。這可能是您長期想要的。
我創建了一個sample project,顯示此對Maven(我猜你用maven你提到的目標目錄)。
bndrun是什麼,爲什麼我需要它? –
bndrun文件描述您的運行時間。你想要使用的框架,捆綁包,額外的庫,屬性,設置等。如果你按照快速入門教程,它應該變得清晰。 –