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

首先在pom.xml中添加:

<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都是可以的)
<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...点击确定会自动生成上面的。

你可能感兴趣的:(maven,依赖冲突)