dependency:tree
可用于查看给定项目的依赖关系树。但我需要的是看到第三方工件的依赖树。
我想我可以创建一个空项目,但我正在寻找更简单的东西(我需要为几个工件做这个)。
答案 0 :(得分:97)
仅使用pom.xml创建一个简单项目。添加您的依赖项并运行:
mvn dependency:tree
不幸的是dependency mojo必须使用pom.xml,否则会出现以下错误:
无法执行mojo:tree。它需要一个带有现有pom.xml的项目,但构建版本没有使用它。
在工件的pom.xml中描述了依赖关系。使用maven基础设施找到它。
转到http://search.maven.org/并输入您的groupId和artifactId。
或者您可以转到http://repo1.maven.org/maven2/并首先使用插件groupId导航,稍后使用artifactId导航,最后使用其版本。
例如,请参阅org.springframework:spring-core
依赖项工件的一部分是pom.xml。这指定了它的依赖性。你可以在这个pom上执行 mvn dependency:tree 。
答案 1 :(得分:26)
您可以使用此maven命令搜索特定的工件:
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
可以找到更多信息here。
答案 2 :(得分:4)
解决方案是使用工件的pom.xml文件调用dependency:tree:
mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree
另见How to list the transitive dependencies of an artifact from a repository?
答案 3 :(得分:2)
如果您使用当前版本的m2eclipse(如果您使用eclipse和maven则应该使用):
选择菜单条目
Navigate -> Open Maven POM
并输入您要查找的工件。
pom将在pom编辑器中打开,您可以从中选择选项卡Dependency Hierarchy
以查看依赖关系层次结构(顾名思义:-))
答案 4 :(得分:2)
I created an online tool to do this。只需以pom文件格式粘贴任何依赖项,然后基于中央Maven存储库生成该工件的依赖关系树。
答案 5 :(得分:1)
如果您的工件不是给定项目的依赖项,那么最好的办法是使用repository search engine。其中许多描述了给定工件的依赖性。
答案 6 :(得分:0)
如果您想获得依赖关系树的图形化,可搜索表示(包括项目中的所有模块,传递依赖关系和驱逐信息),请查看UpdateImpact:https://app.updateimpact.com(免费服务)。
免责声明:我是该网站的开发者之一
答案 7 :(得分:0)
我知道这篇文章已经很老了,但是,如果使用 IntelliJ 的任何人想要直接在IDE中查看依赖关系树,那么他们可以安装Maven Helper Plugin插件。
一旦安装打开pom.xml,您将看到如下所示的 Dependency Analyze 标签。它还提供了选项,以查看仅冲突的依赖关系,也可以将其视为树结构。