我怎么知道我不应该在Karaf功能文件中包含哪些捆绑包?

时间:2017-02-08 10:44:17

标签: apache-karaf karaf

在Karaf功能文件中,如果我包含某些捆绑包,那么Karaf将无法正常工作。

我怎么知道我不应该在功能文件中包含哪些捆绑包?例如,如果我在Windows上的Karaf的功能文件中添加了这些包,那么Karaf并不开心并且行为很奇怪。我认为它是因为Karaf已经为这些捆绑包提供了Java接口。

<bundle>mvn:org.osgi/org.osgi.core/4.3.1</bundle>
<bundle>mvn:org.osgi/org.osgi.compendium/5.0.0</bundle>

还有一种编程方式来确定这个吗?

是否有我不应包含的捆绑包列表?

据我所知,Karaf使用pax-logging而不是slf4j。

更详细地说,我的SBT项目为我的包编译了一个依赖包的列表,在我的列表中,我从我的代码中获取了org.osgi.core和org.osgi.compendium。他们是我的osgi包的家属,这是我的主要项目。现在,问题是,我怎么知道Karaf不想将它作为我的功能的一部分安装?

1 个答案:

答案 0 :(得分:1)

祢&#39;除框架外不得安装其他框架包;) 这是绝对的NOGO!

由于Karaf已经提供了您需要的一切,在这种情况下,框架。 所以,不要考虑添加标准品。你的OSGi环境的框架包,它们已经存在。

如果您想要某些汇编套餐。 确保安装实现包,正如您已经指出的那样,pax-logging包已经提供了osgi logging compendium服务所需的一切。

Pax-Web和OSGi HttpService包也是如此。 您将在Karaf找到许多已经预先注册的OSGi汇编服务, 如果您需要更多,请安装实现,而不是spec包。

修改

nop programmatic或Karaf内部方式可以告诉你不要包含那些捆绑包。它只是众所周知的东西。 实现包总是也会为您带来所需的osgi包。