我正在运行Apache servicemix 4.5.2。我想安装一个功能,即一个jar文件。 我想要的功能是jtidy。
pom依赖是:
<dependency>
<groupId>jtidy</groupId>
<artifactId>jtidy</artifactId>
<version>4aug2000r7-dev</version>
</dependency>
并且存储库是
http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.jar
我知道命令功能:安装webconsole ,但jtidy不在我的功能:列表中。我也尝试过使用addurl命令,但它没有用。 ( addurl mvn:http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev ) Karaf文档建议使用Features XML架构添加功能描述符,但遗憾的是链接已断开。
我知道我做的是下载jtidy.jar并将其复制到我的deploy目录。它有效,但我不认为这是正确的方法。
有人知道如何在servicemix中正确安装jtidy吗?
谢谢!
答案 0 :(得分:6)
安装功能和安装单个JAR或OSGi包之间存在差异。
功能在XML文件中定义。一个功能包括许多捆绑,配置,......安装在一起。请查看http://karaf.apache.org/manual/latest-2.3.x/users-guide/provisioning.html以了解有关Karaf功能的更多信息。
在这种情况下,您希望将单个JAR安装到容器中。您可以使用命令osgi:install
执行此操作,然后使用指向JAR的URL(例如mvn:jtidy/jtidy/4aug2000r7-dev
)。
但是,在您的情况下,还有一个复杂性。 jtidy
本身不是OSGi包。添加必要的OSGi元数据的最简单方法是使用wrap:
协议自动将OSGi元数据添加到JAR。
所以,为了解决问题 - 在Apache ServiceMix中安装此jtidy
依赖项,您可以使用
osgi:install wrap:mvn:jtidy/jtidy/4aug2000r7-dev