簡體   English   中英

如何從命令行運行osgi模塊?

[英]How to run an osgi module from the command line?

我正在嘗試使用以下命令從命令行運行OSGI模塊:

java -jar target/module.jar -console

但是我總是得到

no main manifest attribute, in target/module.jar

當我提取jar文件時,MANIFEST.MF是否存在?

我忘記了哪個清單?

您不能簡單地單獨運行捆綁軟件。 捆綁軟件需要在OSGi框架內運行。 因此,例如,您可以下載Apache felix,然后將捆綁軟件放入felix目錄中,該目錄可以選擇要加載的捆綁軟件。 在這種情況下,您將啟動felix,然后felix將加載您的捆綁軟件。

Peter的建議是在bndrun文件中定義一組捆綁軟件和其他設置,並創建一個包含OSGi框架以及捆綁軟件的胖子。 不錯的是,bnd(tools)提供了很好的工具來專業地做到這一點。

因此,雖然使用第一個解決方案啟動並運行起來更快,但它總是需要人工完成。 bndtools方法可以完全自動化maven構建中的打包。從長遠來看,這可能是您想要的。

我創建了一個示例項目 ,為maven顯示了這一點(我猜您在提到目標目錄時使用了maven)。

您需要創建一個可執行的JAR。 然后,此JAR包括OSGi的啟動器,框架,並且知道在哪里可以找到模塊。

Bndtools為此有一個導出任務。 您必須創建一個bndrun文件,添加初始需求,解決該問題,然后將其導出。 您也可以使用Gradle使它自動化。

您可以按照OSGi enRoute快速入門教程了解如何將OSGi應用程序構建為可執行JAR。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM