2011-07-22 123 views
25

我想确保我没有在我的Maven项目中包含重复的库。我从几个不同的仓库中抽取了很多依赖项,包括main,Spring的仓库和JBoss仓库。我怎样才能看到依赖关系的图形,以便确保我不依赖于单个库的多个版本?在Maven中查看依赖关系树?

那将是怎样的令人失望,如果我是包括像org.springframework:spring-core:3.0.1.RELEASEorg.springframework:org.springframework.spring-core:3.0.5.RELEASE这其实也显示为不同的依赖性,怪异,因为它听起来,因为Spring的仓库名称古怪的事情。我能做些什么来确保我没有重复的依赖关系?

回答

37

dependency:tree Maven插件应该做你想要的东西,并显示了树。

或者force Maven2 to copy dependencies into target/lib复制在target/lib目录中的文物也应该表现出重复,但你仍然需要到grep在~/.m2/repository所有的POM,看看哪些库在哪个版本手动拉动,这将是耗时大型本地存储库。

+3

正是我需要的开发人员之一。你,先生,并不缺乏胜利。 –

0

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

使用搜索,你可以找到一个给定的库多少次进口的,由什么模块,并在该版本中,以及验证,如果库的旧版本被较新的驱逐。

免责声明:我的网站

+0

停止发送垃圾邮件/刨脸以宣传产品。每个问题我都会看到您的广告。 –

+0

该服务是免费的,所以它不会比其他指向网站的指向更多。我认为这个问题总共有两个问题,所以几乎没有“每个”:) – adamw