如何查看 Maven pom.xml 文件的传递依赖项?

Posted

技术标签:

【中文标题】如何查看 Maven pom.xml 文件的传递依赖项?【英文标题】:How can I view transitive dependencies of a Maven pom.xml file? 【发布时间】:2011-08-31 22:23:16 【问题描述】:

是否有 CLI 工具可用于快速查看 Maven pom.xml 文件的传递依赖关系?

【问题讨论】:

How to get a dependency tree for an artifact?的可能重复 【参考方案1】:

在 CLI 上,使用 mvn dependency:tree (这里有一些额外的Usage notes)

在多模块 maven 项目上运行 dependency:tree 时,请改用 mvn compile dependency:tree1

否则,M2Eclipse(Eclipse 的 Maven 集成)中的 POM 编辑器非常好,它包含分层依赖视图。


1如果你不编译,你可能会得到错误Failed to execute goal on project baseproject: Could not resolve dependencies for project com.company:childproject:jar:1.0.0: Could not find artifact。这可能是因为dependency:tree 命令不构建项目并且不解析依赖项,并且您的项目未安装在 maven 存储库中。

【讨论】:

如果您试图在编译时确定您所依赖的传递依赖项,那么这并不实际。它只是为您提供了所有传递依赖项的巨大列表,无论是否使用。 另外,要查看传递依赖项之间的冲突解决方案,您需要添加详细信息: mvn dependency:tree -Dverbose https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html 我认为@kisna 建议的详细选项是必不可少的-否则,将不会绘制重复的传递依赖关系。 另一个警告:如果项目使用 Shade 插件,dependency:tree 可能无法绘制其传递依赖关系。

以上是关于如何查看 Maven pom.xml 文件的传递依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

如何配置maven pom文件来解决jar包冲突

若依如何区分不同环境下配置文件?

将生成的 jar 文件的名称从 Maven pom.xml 传递到 Dockerfile

idea 怎么引入在pom.xml的jar

如何获取/获取 Jenkins 管道中设置的环境变量到我们的 maven pom.xml

在 maven pom.xml 中更改传递依赖项的版本