dependency:tree
可用于查看给定项目的依赖树。但是我需要查看第三方工件的依赖树。
我想我可以创建一个空项目,但我正在寻找更简单的方法(因为我需要为几个工件执行此操作)。
dependency:tree
可用于查看给定项目的依赖树。但是我需要查看第三方工件的依赖树。
我想我可以创建一个空项目,但我正在寻找更简单的方法(因为我需要为几个工件执行此操作)。
创建一个只包含 pom.xml
的简单项目。添加您的依赖项并运行:
mvn dependency:tree
(多模块Maven项目的版本: mvn compile dependency:tree
)
不幸的是,依赖mojo必须使用pom.xml
,否则你会收到以下错误:
无法执行mojo: tree。它需要具有现有
pom.xml
的项目,但构建没有使用它。
pom.xml
依赖项在您的artifact的pom.xml
中描述。使用maven基础设施找到它。
访问https://search.maven.org/并输入您的groupId
和artifactId
。
或者你可以去https://repo1.maven.org/maven2/,先使用插件的groupId
导航,之后再使用artifactId
导航,最后使用其版本。
例如,请参见org.springframework:spring-core
依赖artifact的一部分是pom.xml
。它指定了它的依赖关系。你可以在这个pom上执行mvn dependency:tree
。
pom.xml
文件的项目),您可能会遇到错误。请尝试使用mvn compile dependency:tree
命令。 - izogfif如果你想要创建一个示例项目,并将你的第三方依赖加入其中,那么你可以运行以下命令以查看所有依赖项的完整层次结构。
你可以使用这个Maven命令搜索特定的artifact:
mvn dependency:tree -Dverbose -Dincludes=[groupId]:[artifactId]:[type]:[version]
根据文档:
每个模式段都是可选的,支持完整和部分通配符“*”。空的模式段被视为隐式通配符。
假设你正在尝试在项目的不同模块中查找“log4j-1.2-api” jar文件:
mvn dependency:tree -Dverbose -Dincludes=org.apache.logging.log4j:log4j-1.2-api
更多信息可以在这里找到。
编辑:版本3.2.0重新引入了 verbose 标志。您可以按以下方式使用特定版本:
mvn org.apache.maven.plugins:maven-dependency-plugin:3.2.0:tree -Dverbose=true
-Dverbose
就足够让我看到我需要的完整树形结构了。如果您记不住includes
标志,或者不想提供完整或通配符groupId
,将输出导管到less
或类似工具并进行快速搜索是一个很好的方法 :) - jocullorg.apache.logging.log4j:log4j-1.2-api:jar:2.17.1
的意思是 log4j 版本 1 还是 2? - mercury解决方案是使用artifact的pom.xml文件调用dependency:tree命令:
mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree
如果任何使用 IntelliJ 的人想直接在 IDE 中查看依赖树,则可以安装Maven Helper Plugin插件。
一旦安装,打开 pom.xml 文件,您将能够看到如下所示的Dependency Analyze选项卡。它还提供了仅查看冲突依赖项以及作为树结构查看依赖项的选项。
depgraph-maven-plugin的for-artifact目标应该可以做到你想要的。要获取org.jboss.ws:jbossws-common-tools:1.3.2.Final
的依赖关系图,只需执行以下命令:
mvn com.github.ferstl:depgraph-maven-plugin:3.3.0:for-artifact -DgroupId=org.jboss.ws -DartifactId=jbossws-common-tools -Dversion=1.3.2.Final -DgraphFormat=text -DshowGroupIds=true -DshowVersions=true
你会得到
org.jboss.ws:jbossws-common-tools:1.3.2.Final:compile
+- org.jboss.ws:jbossws-api:1.1.2.Final:compile
+- org.apache.ant:ant:1.7.1:provided
| \- org.apache.ant:ant-launcher:1.7.1:provided
+- gnu.getopt:java-getopt:1.0.13:provided
+- log4j:log4j:1.2.14:provided
\- junit:junit:3.8.2:test
无需创建Maven项目或使用IDE或在线应用程序。
当使用IntelliJ时,你可以使用一键式工具来探索Maven依赖关系:https://www.jetbrains.com/help/idea/work-with-maven-dependencies.html
Dependency Hierarchy
以查看依赖关系层次结构(如名称所示:-))