Maven间接依赖冲突解决办法


如果项目中maven依赖太多,由于还有jar之间的间接依赖,所以可能会存在依赖冲突。依赖冲突大部分都是由于版本冲突引起的,查看maven的依赖关系,可以找到引起冲突的间接依赖

 

如上图,通过Dependency Hierachy可以查看到间接依赖,这里slf4j-api与其他引用的版本有冲突,我们可以exclude禁用这个间接依赖,代码如下:

 1 <dependency>
 2     <groupId>displaytag</groupId>
 3     <artifactId>displaytag</artifactId>
 4     <version>1.2</version>
 5     <exclusions>
 6         <exclusion>
 7             <groupId>org.slf4j</groupId>
 8             <artifactId>jcl104-over-slf4j</artifactId>
 9         </exclusion>
10         <exclusion>
11             <groupId>org.slf4j</groupId>
12             <artifactId>slf4j-log4j12</artifactId>
13         </exclusion>
14     </exclusions>
15 </dependency>

这里禁用了displaytag间接引用的两个依赖,被禁用的依赖如果没有被其他依赖引用,可以手动引入。

这样就解决了maven依赖冲突的问题。

 

PS: 对于有的依赖,简单的通过groupId artifactId和version无法从maven中央仓库下载,由于这些jar依赖不同的jdk,所以要加上classifier,如下:

<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
</dependency>

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM