Karaf Cave vs org.apache.felix.bundlerepository

时间:2015-08-24 10:42:19

标签: osgi apache-felix apache-karaf obr

美好的一天。

我试图在我的应用程序中获得OBR的好处。我把Karaf Cave(4.0.0)作为OBR实现,将org.apache.felix.bundlerepository(2.0.4)作为OBR客户端。我成功配置了存储库本身,但我无法正确使用它。 问题是:当我通过OBR安装捆绑包并且其所有依赖项已经安装在OSGI运行时中时,它已成功安装。但是如果缺少某些要求,我会得到一个“不满意的要求”错误,这很奇怪,因为我确信所有解决这些要求的资源都存在于OBR描述符中,并且所有链接都是有效的。< / p>

为什么不自动解决?如何配置OBR客户端与Karaf Cave合作?

我还尝试了Sonatype Nexus(OBR插件)的OBR实现,发现Cave生成的OBR描述符和Nexus生成的OBR描述符不同。此外:

  • Cave生成的那个符合OSGI标准规范
  • 由Nexus生成的那个不是,但就像org.apache.felix.bundlerepository的魅力一样 - 问题没有被复制。

我完全糊涂了。

重现问题的步骤顺序(在Apache Karaf 4.0.0上重现):

1)安装卡拉夫洞穴:

feature:repo-add cave
feature:install cave-server cave-http

2)创建洞穴存储库:

cave:create-repository test
cave:proxy-repository test file:///path/to/some/local/maven/repo

3)安装OBR客户端并从Karaf注册“test”洞穴存储库:

feature:install obr
obr:url-add http://localhost:8181/cave/http/test-repository.xml

4)尝试使用obr:deploy

部署一些OBR资源

0 个答案:

没有答案