您的位置:首页 > 其它

解决maven传递依赖中的版本冲突

2014-09-10 11:08 330 查看
首先在pom.xml中添加:

[code]<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId> maven-project-info-reports-plugin </artifactId>
</plugin>
</plugins>
</reporting>


如果用的是eclipse,那就用run as-build-在Goals那个框框里输入:
project-info-reports:dependencies,如果实在dos环境下,
就mvn project-info-reports:dependencies。然后就会在target的文件夹下,生成一个site文件夹,里边有个dependency.html,进去就能看到详细的依赖的信息。

或者直接在eclipse中打开pom.xml文件

会看到打开的窗口中有一个dependency hie开头的选项卡。

这个选择卡页面左半部分显示了详细的jar包依赖树。右半部分则是maven将会下载的jar包。


比如我们看到右半部分有2个asm的jar,版本不同。

现在需要排除其中低版本的jar(比如xwork-core下的某个jar依赖的asm版本相对较低,不一定说是xwork-core依赖,而是它的依赖的依赖,即多重依赖的asm都是可以的)

[code]<dependency>
<groupId>org.apache.struts.xwork</groupId>
<artifactId>xwork-core</artifactId>
<version>${struts.version}</version>
<exclusions>
<exclusion>
<artifactId>asm</artifactId>
<groupId>asm</groupId>
</exclusion>
</exclusions>
</dependency>
当然我们也可以在dependency hie开头的选项卡中右半部分直接选中那个低版本的asm.jar。然后右键exclude maven...点击确定会自动生成上面的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: