【问题标题】:Karaf OSGI How to resolve a two dependency chain conflict for Google GuavaKaraf OSGI 如何解决 Google Guava 的两个依赖链冲突
【发布时间】: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


【解决方案1】:

好吧,这是一个棘手的问题,因为 cxf 功能构成了对 Guava 20.0 的依赖。 然后在里面安装我自己的带有 query-dsl 和 guvava 18.0 jar 的功能。 但是对番石榴的依赖querydsl没有根据maven解决,而是根据karaf so 20.0中已经存在的guava。

当我现在安装一个带有 query-dsl 和 guava 18.0 的捆绑包时,就会出现冲突。

最后,我从功能中删除了 18.0 库,并在我的项目中允许更大的版本范围: ... com.google.common.collect;version="[18.0,23.0)", *

冲突消失了,让我想知道如果可能的话,我将如何在 feature.xml 中的 querydsl 和 guava 18.0 之间指定这样的依赖关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    相关资源
    最近更新 更多