在有冲突的依赖下面加上exclusion,如不想用slf4j-log4j12默认
的slf4j-api版本,而自己指定一个,可以这样:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j-log4j12.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
有时候不一定能发现是哪几个依赖冲突了,这时可以上
http://mavenrepository.com查一下,比如发现lib里有
javassist-3.4.GA.jar和javassist-3.7.ga.jar,而自己
想用的是javassist-3.7.ga.jar,可以在上面的网站里
查javassist-3.4.GA,在This artifact is used by ... 里会列出依赖于它的一些dependency,
如
| org.hibernate | hibernate-core | 3.3.1.GA |
| org.hibernate | hibernate-entitymanager | 3.3.2.GA |
等,再在那些dependency里加入exclusion去掉javassist就可以了,如下:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
<exclusions>
<exclusion>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
Maven依赖排除实战
本文介绍了如何在Maven中处理依赖冲突,通过具体实例演示了如何排除不需要的依赖版本,确保项目的依赖一致性。
963

被折叠的 条评论
为什么被折叠?



