【问题标题】:How can I see a `dependency:tree` for artifacts only used in non-default lifecycle steps?如何查看仅在非默认生命周期步骤中使用的工件的“依赖关系:树”?
【发布时间】:2026-01-27 16:50:01
【问题描述】:

我有一个包含许多依赖项的 Maven 项目。我可以运行mvn dependency:tree 来获取我所依赖的所有工件的转储,以及它们的传递依赖项等,一路向下的海龟。但是,有时我可以运行一个非默认的生命周期目标,例如rpm:rpmjavadoc:javadoc,它会抱怨缺少dependency:tree 中未列出的工件。有没有办法告诉Maven“计算依赖关系好像你要运行目标X:Y,然后给我一个依赖关系树”?我错过了什么吗?

【问题讨论】:

    标签: maven dependency-management


    【解决方案1】:

    您说的是运行插件目标,而不是生命周期阶段。与项目依赖无关的插件have their own dependencies。如果您使用详细输出(-X/--debug 命令行选项)运行 Maven,它将显示所有插件的依赖关系树。这是我发现查看插件依赖项的唯一方法。输出是巨大的,第一次通过时你会花一些时间来定位自己,但是当你找到它们时,树木非常明显。尝试搜索插件的 artifactId 的出现。这会让你到达你想去的地方。

    【讨论】: