使用maven构建开发过程中,可能会遇到jar包冲突的情况,maven 为我们提供了一个很实用的方法。
利用命令 mvn dependency:tree 可以很清楚的看到jar包之间的依赖项,我在pom.xml 里只写了junit的依赖,然后执行此命令,可见依赖关系:
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ member ---
[INFO] com.foo:member:jar:0.0.1-SNAPSHOT
[INFO] \- junit:junit:jar:4.11:test
[INFO] \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] ---------------------------------------------------------------
比如hamcrest-core有两个版本1.2 、1.3,在junit测试的时候,与此jar相关的类发生冲突,你可以在dependency tree中寻找是否有多个版本的hamcrest-core.jar,以此来排查问题,快捷方便。
详情可参见链接:
http://www.ibm.com/developerworks/cn/java/j-5things13