JBoss Fuse无法安装带有maven安装的bundel

时间:2017-10-23 09:11:06

标签: java maven esb

我在eclipse中创建了maven项目,将其余的Web服务暴露给JBoss Fuse并使maven干净并安装,并在此路径中的maven本地存储库中创建了包:

C:\Users\mohamed.mostafa\.m2\repository\com\javainuse\apache-camel-jaxrs\0.0.1-SNAPSHOT

我想使用此命令将此软件包安装到jboss fuse:

JBossFuse:karaf@root>install mvn:com/javainuse/apache-camel-jaxrs/0.0.1-SNAPSHOT

请帮帮我......

让我无法安装捆绑com/javainuse/apache-camel-jaxrs/0.0.1-SNAPSHOT

2 个答案:

答案 0 :(得分:1)

这应该在etc文件夹中的org.ops4j.pax.url.mvn.cfg配置中配置。

您用于安装的语法错误。它应该如下所示。

JBossFuse:karaf@root>install mvn:<groupId>/<artifactId>/<version>

示例:

JBossFuse:karaf@root>install mvn:com.javainuse/apache-camel-jaxrs/0.0.1-SNAPSHOT

此外,重要的是你要安装的地方如果你使用nexus,你可以使用下面的东西。

org.ops4j.pax.url.mvn.repositories = http://someurl.com/nexus/content/groups/public@snapshots

如果您想使用本地maven repo。

  

用于避免下载的本地maven存储库的路径    当本地已经存在的工件。    将从settings.xml文件中提取此属性的值    以上,或默认为:        System.getProperty(&#34; user.home&#34;)+&#34; /。m2 / repository&#34;

 org.ops4j.pax.url.mvn.defaultLocalRepoAsRemote = true
 org.ops4j.pax.url.mvn.localRepository= Path of Local maven Repo

答案 1 :(得分:0)

要使用Maven为OSGi创建JBoss FUSE捆绑包,应将maven-bundle-plugin添加到pom.xml中,并将包装类型设置为bundle

<packaging>bundle</packaging>
...
<build>
  <plugins>
    <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <version>2.3.7</version>
    </plugin>
  </plugins>
</build>

要使您的软件包可用于JBoss FUSE,请构建工件并将其安装到本地Maven存储库中:

mvn -DskipTests=true clean install

要使用Apache ServiceMixApache Karaf在JBoss FUSE中安装OSGi软件包,可以从其shell运行以下命令:

JBossFuse:karaf@root> osgi:install -s mvn:<groupId>/<artifactId>/<version>

您会看到:

Bundle ID: //some identifier here

参数-s允许自动启动分发包。

JBoss FUSE还提供了一个Web管理控制台,网址为:

http://localhost:8181/hawtio

除此之外,您还可以在其中管理捆绑包。

重要说明:如documentation中所述,

  

如果本地Maven存储库存储在非标准位置,   您可能需要自定义   org.ops4j.pax.url.mvn.localRepository属性中的   InstallDir/etc/org.ops4j.pax.url.mvn.cfg文件,然后才能使用   mvn:方案来访问Maven工件。