我正在尝试在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文件复制到部署目录?如果,它会变得凌乱。 有没有其他方法可以指向位置或创建配置文件,以便在激活包中依赖性将被解析。
答案 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”。 同样,可以在文档中找到更多详细信息。