解决Maven依赖冲突

何为依赖冲突

项目中用了 A jar 包依赖 C jar 包, B jar 包也依赖 C jar包,Maven 就帮你下载了两个版本的 C jar 包,然后他们就产生了依赖冲突,这时Maven会依据依赖路径最短优先原则,来决定使用哪个版本的 jar 包,而另一个无用的jar包则未被使用,这就是所谓的依赖冲突。

在大多数情况下,jar 包冲突是不会影响我们系统正常的运行的,但是不排除在一些极端的情景下会出现找不到类的异常 ,我们作为一名严谨的程序员(为了 KPI 考虑),一定要把这个问题解决掉

初步解决依赖冲突问题

解决办法:使用Maven提供的 exclusion 标签,exclusion 标签需要放在 标签内部,就像下面这样

<dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
 <exclusions>
  <exclusion>
   <artifactId>fastjson</artifactId>
   <groupId>com.alibaba</groupId>
  </exclusion>
 </exclusions>
</dependency>

批量解决依赖冲突

使用 Maven Helper 插件解决依赖冲突

在这里插入图片描述

Idea 自带查看依赖冲突的方法

在这里插入图片描述


版权声明:本文为weixin_43178089原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。