【问题标题】:How can I debug maven dependency problems when mvn dependency-tree doesn't work?当 mvn 依赖树不起作用时,如何调试 maven 依赖问题?
【发布时间】:2019-06-14 11:04:54
【问题描述】:

我试图弄清楚为什么 IntelliJ 使用了我项目的 Java 文件之一的错误版本(8.1.1 而不是 8.1.2)。 IntelliJ 项目是一个具有许多依赖项的 maven 项目。

为了调试,我尝试从命令行使用以下命令:

mvn dependency:tree -Dverbose -Dincludes=jaffa-ria

根据 Maven 网站上的 documentation。我看到很多关于下载的输出,包括jaffa-ria 包的一些输出:

Downloaded: https://nexus/content/groups/public/org/jaffa/jaffa-ria/8.1.2-SNAPSHOT/maven-metadata.xml (941 B at 3.2 kB/s)

但是,我没有打印任何依赖关系树。 mvn 命令以 BUILD SUCCESS 正常完成,我只看到一个警告:

[WARNING] Using Maven 2 dependency tree to get verbose output,
 which may be inconsistent with actual Maven 3 resolution

我该怎么做才能找到依赖冲突?我正在使用 Apache Maven 3.5.0。和 Intellij IDEA Ultimate 2019.1。

【问题讨论】:

标签: maven intellij-idea maven-3


【解决方案1】:

首先,尝试dependency:tree,不要冗长。如果这不起作用,您可以尝试添加“依赖收敛”规则(一个强制规则)。

如果您有相同依赖项的冲突版本并且此冲突未在 dependencyManagement 中解决,它将失败。此外,它还显示了冲突地点的来源。

此外,如果您只想修复给定版本,可以在 dependencyManagement 中进行。

【讨论】:

  • 谢谢!如果我也省略 include 参数,我现在可以看到 org.jaffa:jaffa-ria:jar:8.1.2-SNAPSHOT 的 5 种用法。不幸的是,我没有看到任何提及 jaffa-ria 8.1.1。也许我需要做一些 IntelliJ 清理工作?
  • 我不是 IntelliJ 专家,但它可能会有所帮助。您是否也运行过dependency:list 并在那里寻找版本?
  • dependency:list 还显示了 8.1.2 的使用,但不显示 8.1.1。感谢您在 Maven 方面的帮助,我现在认为 IntelliJ 的索引很混乱,尽管我已经清除了缓存并重新启动。
  • IntelliJ 与dependency:tree 无关。您需要先安装工件,否则 Maven 将使用您存储库中较旧的工件。
  • @Meo 这不是真的。 Maven 永远不会自动使用旧的,因为它找不到它正在寻找的那些。
【解决方案2】:

对 IntelliJ 使用 Maven Helper 插件或将 maven-enforcer-plugindependencyConvergence 规则一起使用。

maven-dependency-plugin 从 3.0 版本开始不再支持显示冲突,并且正如警告所说,旧版本可能与实际 Maven 3 分辨率不一致。

【讨论】:

  • 谢谢。 Maven Helper,以及我对它的笨拙实验,解决了我的问题。 Maven Helper 显示了对 8.1.1 和 8.1.2 的依赖关系。我玩弄了“排除”菜单项和其他菜单项,并意识到我无意中编辑了 pom 文件。在还原 pom 文件、刷新 UI 并重新导入后,Maven Helper 不再显示对 8.1.1 的依赖。我猜是 IntelliJ 缓存了一些旧版本信息,在重新导入所有项目的 maven pom 文件后,一切都恢复正常了。
  • 看起来 maven-dependency-plugin 3.2.0 将支持 -Dverbose=true 并输出缺少的依赖项issues.apache.org/jira/browse/MDEP-644
猜你喜欢
  • 2023-03-08
  • 2019-02-06
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
相关资源
最近更新 更多