我正在运行Apache servicemix 4.5.2。我想安装一个功能,即 jar 文件。我想要的功能是jtidy。
绒球依赖性是:
<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
例如,我知道命令功能:安装网络控制台,但jtidy不在我的功能:列表中。我也尝试使用 addurl 命令,但它不起作用。(addurl mvn:http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev)Karaf 文档建议使用功能 XML 架构添加功能描述符,但不幸的是链接已断开。
要知道我所做的是下载 jtidy.jar并将其复制到我的部署目录。它有效,但我认为这不是正确的方法。
有人知道如何在Servicemix中正确安装jtidy吗?
谢谢!
安装功能部件和安装单个JAR或OSGi捆绑包之间存在差异。
特征是在 XML 文件中定义的。 功能由许多捆绑包、配置、...一起安装。 查看 http://karaf.apache.org/manual/latest-2.3.x/users-guide/provisioning.html 以了解有关卡拉夫功能的更多信息。
在这种情况下,您希望将单个 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