对于一个spring项目,随着功能的增多,我们引入的jar包会越来越多,然而更多的引用会造成更高的jar引用冲突的可能性。俗话说常在河边走,哪能不湿鞋,既然鞋已湿。。。不要跑题,那就想办法解决。
既然可以确定是jar包冲突,那么我们排除一个jar包即可。
问题的关键就两个:
1、怎么排除一个jar包?
2、怎么知道是哪些dependency里面的jar包冲突了?
先说第一个问题:
排除dependency中的jar包(代码红色部分)
<dependency>
<groupId>XXX</groupId>
<artifactId>XXX</artifactId><version>3.4.8</version>
<!--排除这个slf4j-log4j12-->
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
再说第二个问题:
首先通过编译报错知道是哪个包报错了,然后通过编码工具idea查看冲突引用
在弹出框中搜索slf4j-log4j12
如上图我们可以找到是zookeeper中引用的冲突了,那么就把zookeeper的dependence中排除slf4j-log4j12即可。
文章参考了https://blog.csdn.net/wohaqiyi/article/details/81009689,查看原文请点击这里。