我有一个包:
<groupId>com.helloworld</groupId>
<artifactId>Helloworld</artifactId>
<version>1.0.0-SNAPSHOT</version>以前,包和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现在捆绑包和OSGi容器在不同的机器上:
IP为192.168.122.22的机器中的捆绑包
如何远程安装此包?
发布于 2013-05-05 01:32:10
请注意,install命令的参数是一个URL。因此您可以从具有可用URL处理程序的任何URL进行安装。例如:
install http://www.example.com/helloworld-1.0.jar
发布于 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存储库的位置。当您开始使用功能组合自己的捆绑包和开源捆绑包时,它还将允许您混合使用它们。
https://stackoverflow.com/questions/16369647
复制相似问题