簡體   English   中英

OSGi如何從遠程機器安裝捆綁包?

[英]OSGi how to install a bundle from a remote machine?

我有一個包:

<groupId>com.helloworld</groupId>
<artifactId>Helloworld</artifactId>
<version>1.0.0-SNAPSHOT</version>

以前,bundle和OSGi容器(FUSE ESB Enterprise)位於同一台機器上。 我使用以下命令從本地maven存儲庫安裝它:

FuseESB:karaf@root> install file:/home/li/.m2/repository/com/helloworld/Helloworld/1.0.0-SNAPSHOT/Helloworld-1.0.0-SNAPSHOT.jar

現在bundle和OSGi容器在不同的機器上:

捆綁在IP為192.168.122.22的機器中

如何遠程安裝此捆綁包?

請注意, install命令的參數是URL。 因此,您可以從任何可用URL處理程序的URL進行安裝。 例如:

install http://www.example.com/helloworld-1.0.jar

對於Fuse ESB或更常見的基於Apache Karaf的服務器,您有pax url mvn uri前綴 這允許從mvn存儲庫安裝捆綁包。 我建議總是使用這個uri而不是文件。 在您的情況下,命令將是:

安裝mvn:com.helloworld / Helloworld / 1.0.0-SNAPSHOT

這個uri甚至比基於文件的uri小一點。 但最大的優點是你可以獲得完整的mvn分辨率。 因此,上面的url將適用於來自本地maven repo的捆綁包,也適用於maven central。

當然,您通常不會將自己的工件部署到maven central。 因此,如果您想在公司內部使用此功能,則應設置像Nexus或Archiva這樣的maven存儲庫。 然后使用mvn clean deploy將您自己的軟件包部署到公司倉庫中。 當然,這將要求您正確設置您的pom,但無論如何您將需要任何更大的項目。

最后一步是設置您的Fuse ESB / Karaf以使用您的公司倉庫。 這是通過將repo uri添加到文件etc / org.ops4j.pax.url.mvn.cfg來完成的。

當然,這比Neil提出的http網址要多得多。 這樣做的好處是,它可以很好地與你的maven構建過程集成,它將使你的捆綁包mvn uris獨立於你的maven repo的位置。 當您開始使用功能組合它們時,它還允許您混合自己的包和開源包。

暫無
暫無

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

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