Maven 依赖jar包版本冲突解决方案

时间:2020-12-15 09:15:03

1、为何会产生依赖冲突

  Maven中的传递性依赖机制,一方面简化了依赖声明,另一方面如果传递依赖有可能引发版本冲突。例如:有这样的依赖关系:a->b->c->x(1.0)、a->d->x(2.0),对于这样的冲突Maven给出的方案是:第一原则:路径最近者优先,第二原则:在路径长度相等的前提下,pom中的依赖声明的顺序决定了谁会被解析。

2、如何排除依赖

  pom如下:

  

<dependency>
    ......
    <exclusions>
        <exclusion>
            ......
        </exclusion>
    </exclusions>        
</dependency>

3、优化依赖

3.1 相关mvn命令

  mvn dependency:list 

  mvn dependency:tree

  mvn dependency:analyze

3.2 Idea优化支持