在karaf中解决依赖项google(com.google.common.base)

时间:2019-07-22 18:14:22

标签: java dependencies osgi guava apache-karaf

我在karaf(版本3.0.3)中有一个包含多个模块的项目。我把依赖关系放在一个模块上-google-http-client。

<dependency>
  <groupId>com.google.http-client</groupId>
  <artifactId>google-http-client</artifactId>
  <version>1.30.2</version>
</dependency>

在运行karaf时,我发现了com.google.common.base的错误

Unable to resolve 367.0: missing requirement [367.0] osgi.wiring.package; (&(osgi.wiring.package=com.google.api.client.http)(version>=1.30.0)(!(version>=2.0.0))) [caused by: Unable to resolve 368.0: missing requirement [368.0] osgi.wiring.package; (&(osgi.wiring.package=com.google.common.base)(version>=26.0.0)(!(version>=27.0.0)))]

要解决com.google.common.base的问题,我使用了软件包google guava。在maven-bundle-plugin中,我导入了番石榴包。

我检查了MANIFEST文件,并具有软件包的下一个版本,但是现在我遇到了相同的错误。你能帮我吗?

com.google.api.client.http; version="[1.30,2)"

com.google.common.base;version="[26.0,0)"

我的解决方案:为解决此问题,我更改了google http客户端版本(较低)...

1 个答案:

答案 0 :(得分:0)

这些依赖项似乎都已经是OSGi捆绑包。因此,请勿嵌入它们,而应使用其maven坐标安装它们。

尝试使用install -s mvn:...命令在Apache Karaf中安装google-http-client。 它将向您显示此捆绑包所需的软件包。然后以相同的方式安装依赖项,直到没有更多的解决错误为止。

然后将这些依赖项与捆绑软件一起放入功能文件中,以便下次安装更加容易。

相关问题