【问题标题】:Weird dependency convergence error奇怪的依赖收敛错误
【发布时间】:2018-01-05 10:46:05
【问题描述】:

这是我在 Maven 构建命令中看到的错误。我发现奇怪的是zeppelin-interpreter的版本是0.8.0-20170724.234851-5,而不是0.8.0-SNAPSHOT。在最后一次提交中,我确实将 guava 版本指定为 15.0,并在新提交中将其更新为 18.0。但是我不明白为什么zeppelin-zengine仍然依赖旧版本0.8.0-20170724.234851-5而不是0.8.0-SNAPSHOT。任何人都可以帮忙吗?谢谢

Dependency convergence error for com.google.guava:guava:15.0 paths to dependency are:
    +-org.apache.zeppelin:zeppelin-zengine:0.8.0-SNAPSHOT
      +-org.apache.zeppelin:zeppelin-interpreter:0.8.0-20170724.234851-5
        +-com.google.guava:guava:15.0
    and
    +-org.apache.zeppelin:zeppelin-zengine:0.8.0-SNAPSHOT
      +-com.google.guava:guava:18.0

【问题讨论】:

  • 嗨,你解决这个问题了吗?

标签: java maven dependencies


【解决方案1】:

但我不明白为什么 zeppelin-zengine 仍然依赖于旧的 版本 0.8.0-20170724.234851-5 而不是 0.8.0-SNAPSHOT。

您使用的是第三方库的快照版本:org.apache.zeppelin:zeppelin-zengine
它与这些自己的依赖项的一致性可能不准确,因为它是一个正在进行的版本。

似乎org.apache.zeppelin:zeppelin-zengine:0.8.0-SNAPSHOT 的情况取决于org.apache.zeppelin:zeppelin-interpreter:0.8.0-20170724.234851-5,最后这两个工件拉取不同版本的com.google.guava:guava(一个拉取15.0,另一个拉取18.0)。

我可能会为您提供一种快速而肮脏的方式来排除依赖关系,但这确实不是遵循的方式。
相反,我强烈建议您使用 zeppelin-zengine 的已发布版本。

例如2017年6月9日发布的0.7.2版本:

<!-- https://mvnrepository.com/artifact/org.apache.zeppelin/zeppelin-zengine -->
<dependency>
    <groupId>org.apache.zeppelin</groupId>
    <artifactId>zeppelin-zengine</artifactId>
    <version>0.7.2</version>
</dependency>

【讨论】:

  • 我自己做zeppelin项目,指定zeppelin-interpreter的版本为${project.version},我觉得${project.version}应该是0.8.0-SNAPSHOT吧?
  • 好吧,对不起。不,因为不准确的版本来自zeppelin-zengine。正是这个工件提取了带时间戳的版本,所以这就是应该修改的工件。
  • 我尝试了 ${project.version} 和 0.8.0-SNAPSHOT,但都没有,很奇怪。
  • 你重新安装(mvn install)zeppelin-zengine dep 了吗?没有看到 poms,很难猜出原因。
猜你喜欢
  • 2016-08-12
  • 2023-03-31
  • 2016-09-24
  • 2021-10-29
  • 2015-09-19
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
  • 2015-04-21
相关资源
最近更新 更多