查看项目的依赖关系树以显示依赖关系(重复、冲突等)。
例如,为了找出Maven依赖插件使用Commons Collections 2.0的原因,我们可以在项目目录中执行以下操作:
mvn dependency:tree -Dverbose -Dincludes=commons-collections
verboseL:显示已解析等依赖项树中省略的冲突依赖项。在这种情况下,目标输出:
[INFO] [dependency:tree]
[INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
[INFO] +- org.apache.maven.reporting:maven-reporting-impl:jar:2.0.4:compile
[INFO] | \- commons-validator:commons-validator:jar:1.2.0:compile
[INFO] | \- commons-digester:commons-digester:jar:1.6:compile
[INFO] | \- (commons-collections:commons-collections:jar:2.1:compile - omitted for conflict with 2.0)
[INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
[INFO] \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
[INFO] \- commons-collections:commons-collections:jar:2.0:compile
因此,我们可以看到Commons Collections 2.1被删除,使用2.0版本。因为2.0更接近,2.1在第3层,2.1在第2层,默认情况下,Maven用最近策略解决版本冲突。
更具体地说,在详细模式中,依赖树显示被省略的依赖项:与另一个的副本;与另一个的版本和/或作用域冲突。