在Maven中查看依赖关系树?

时间:2011-07-22 22:47:23

标签: maven

我想确保我的Maven项目中没有包含重复的库。我从几个不同的存储库中提取了很多依赖项,包括main,Spring的repo和JBoss的存储库。如何查看依赖关系图,以便确保我不依赖于单个库的多个版本?

如果我包含org.springframework:spring-core:3.0.1.RELEASE org.springframework:org.springframework.spring-core:3.0.5.RELEASE之类的东西,实际上会显示为不同的依赖关系,听起来很奇怪,这会有点糟糕,因为Spring的存储库很奇怪。我该怎么做才能确保我没有重复的依赖项?

3 个答案:

答案 0 :(得分:37)

dependency:tree maven插件应该可以执行您想要的操作并显示树。

或者force Maven2 to copy dependencies into target/lib复制target/lib目录中的工件,这些工件也应该显示重复,但你仍然需要grep ~/.m2/repository中的所有POM以查看哪个库正在拉手动使用哪个版本,这对于大型本地存储库来说非常耗时。

答案 1 :(得分:0)

重复库可能是个问题,但即使没有重复的库,也可能存在重复的类。 JBoss Tattletale可以分析一组jar文件并生成一个列出所有重复类的报告。有一个用于运行报告的Maven插件 - 请参阅http://docs.jboss.org/tattletale/userguide/1.2/en-US/html/maven.html

答案 2 :(得分:0)

如果您想获得依赖关系树的图形化,可搜索表示(包括项目中的所有模块,传递依赖关系和驱逐信息),请查看UpdateImpact:https://app.updateimpact.com(免费服务)。

使用搜索,您可以了解导入给定库的次数,模块和版本,以及验证旧版本的库是否被新版本驱逐。

免责声明:我是该网站的开发者之一