4

我正在运行 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

例如,我知道命令features:install webconsole,但 jtidy 不在我的features:list 中。我也尝试过使用 addurl 命令,但是没有用。( addurl mvn: http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev ) Karaf 文档建议使用 Features XML 模式添加特征描述符,但不幸的是链接已损坏。

要知道我所做的是下载 jtidy.jar 并将其复制到我的部署目录。它有效,但我认为这不是正确的方法。

有人知道如何在 servicemix 中正确安装 jtidy 吗?

谢谢!

4

1 回答 1

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。

所以,总结一下——jtidy在 Apache ServiceMix 中安装这个依赖项,你可以使用

osgi:install wrap:mvn:jtidy/jtidy/4aug2000r7-dev
于 2013-10-17T09:48:42.827 回答