在apache-karaf-2.3.10

时间:2015-10-01 14:03:13

标签: java maven osgi apache-karaf osgi-bundle

我正在尝试在Apache karaf-2.3.10容器中部署一个包,其中包含jar文件依赖项。复制依赖jar文件以部署Apache-Karaf依赖问题后,问题得到了解决。如何通过命令行安装普通jar。我尝试了下面的命令

osgi:install -s 'wrap:mvn:<path to the jar file/test.jar>'

显示

  

执行命令时出错:安装软件包时出错:

我的bundle有很多依赖jar文件。我是否需要将所有jar文件复制到部署目录?如果,它会变得凌乱。 有没有其他方法可以指向位置或创建配置文件,以便在激活包中依赖性将被解析。

1 个答案:

答案 0 :(得分:1)

是的,这对OSGi应用程序来说是正常的。 为此,您可以使用Apache Karaf的功能。 所以请查看相应的文档:

Apache Karaf Provisioning and Features

功能中的包装束可能具有以下“包裹”的maven坐标:

<bundle>wrap:mvn:my.group.id/my.artifact/version</bundle>

关于功能存储库,只要可以导航到存储库(功能文件)的链接,它们可以是任何类型。例如,以下是有效的“坐标”:

file:/filesystem/to/my/so/awesome/features.xml
https://remote.Link.to/my/so/awesome/features.xml
mvn:my.group.id/my.artifact/version/xml/features

如果您的本地maven存储库确实包含功能maven工件,则它将被视为要查找的工具。

功能存储库按以下方式添加:

feature:repo-add mvn:my.group.id/my.artifact/version/xml/features 

通过karaf shell。或者在构建自定义Karaf时添加为“bootfeature”。 同样,可以在文档中找到更多详细信息。