【发布时间】:2020-06-04 18:38:33
【问题描述】:
2.8 连同其 cxf 功能 3.3.5,以及作为功能安装的 cxf-jaxrs 依赖于 Google Guava 20.0。我有自己的项目,我通过 Karaf 功能安装了几个 jar,其中包括 Google Guava 18.0。我现在要安装的包具有 18.0 的 Google Guava 依赖项,但是我收到以下错误:
Chain 1:
arcanite-core [arcanite-core [269](R 269.0)]
import: (&(osgi.wiring.package=com.google.common.collect)(version>=18.0.0)(!(version>=19.0.0)))
|
export: osgi.wiring.package: com.google.common.collect
com.google.guava [com.google.guava [253](R 253.0)]
Chain 2:
arcanite-core [arcanite-core [269](R 269.0)]
import: (&(osgi.wiring.package=com.querydsl.core)(version>=4.2.0)(!(version>=5.0.0)))
|
export: osgi.wiring.package=com.querydsl.core; uses:=com.google.common.collect
com.querydsl.core [com.querydsl.core [255](R 255.0)]
import: (&(osgi.wiring.package=com.google.common.collect)(version>=18.0.0))
|
export: osgi.wiring.package: com.google.common.collect
com.google.guava [com.google.guava [172](R 172.0)] Unresolved requirements: [[arcanite-core [269](R 269.0)] osgi.wiring.package; (&(osgi.wiring.package=com.querydsl.core)(version>=4.2.0)(!(version>=5.0.0)))]
在我的项目导入中,我明确导入了 18.0 版本:
<Import-Package>
...
com.google.common.collect;version="[18.0,19.0)",
*
<Import-Package>
我怎样才能摆脱这种冲突,这真的是关于在 Karaf (OSGI) 中只有一个版本的 Guava,我做错了什么?
【问题讨论】:
-
我在番石榴冲突方面遇到了类似的问题。我们最终使用 OSGi 服务将使用不同 Guava 版本的包解耦,这样包就不会相互依赖。对番石榴来说很麻烦。
标签: osgi apache-karaf