首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSGi如何从远程机器安装包?

OSGi如何从远程机器安装包?
EN

Stack Overflow用户
提问于 2013-05-04 09:18:14
回答 2查看 2.6K关注 0票数 0

我有一个包:

代码语言:javascript
复制
<groupId>com.helloworld</groupId>
<artifactId>Helloworld</artifactId>
<version>1.0.0-SNAPSHOT</version>

以前,包和OSGi容器(FUSE ESB Enterprise)在同一台机器上。我使用以下命令从本地maven存储库安装它:

代码语言:javascript
复制
FuseESB:karaf@root> install file:/home/li/.m2/repository/com/helloworld/Helloworld/1.0.0-SNAPSHOT/Helloworld-1.0.0-SNAPSHOT.jar

现在捆绑包和OSGi容器在不同的机器上:

IP为192.168.122.22的机器中的捆绑包

如何远程安装此包?

EN

回答 2

Stack Overflow用户

发布于 2013-05-05 01:32:10

请注意,install命令的参数是一个URL。因此您可以从具有可用URL处理程序的任何URL进行安装。例如:

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

票数 1
EN

Stack Overflow用户

发布于 2013-05-05 22:39:22

对于Fuse ESB或更通用的基于Apache Karaf的服务器,您需要pax url mvn uri prefix。这允许从mvn存储库安装包。我建议始终使用此uri,而不是文件uri。在您的示例中,命令为:

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

这个uri甚至比基于文件的uri还要小一点。不过,最大的好处是您可以获得完整的mvn分辨率。因此,上面的url将适用于来自本地maven repo的包,也适用于maven central的包。

当然,您通常不会将自己的工件部署到maven central。因此,如果你想在你的公司内部使用它,你应该建立一个maven存储库,比如Nexus或Archiva。然后,您可以使用mvn clean将您自己的包部署到您的公司存储库中。当然,这将要求您正确设置您的pom,但无论如何,对于任何较大的项目,您都需要它。

所需的最后一步是设置您的Fuse ESB / Karaf,以便也使用您公司的repo。这是通过将repo uri添加到文件etc/org.ops4j.pax.url.mvn.cfg来完成的。

当然,这比Neil提出的http url要多一点的工作量。THe的优点是,这将与您的maven构建过程很好地集成在一起,并且它将使您的捆绑包mvn独立于您的maven存储库的位置。当您开始使用功能组合自己的捆绑包和开源捆绑包时,它还将允许您混合使用它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16369647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档