解决Maven项目中jar包依赖冲突问题

版本冲突的解决方案

  [1]调节原则

      [1]路径最短者优先原则

      [2]路径相同时,先声明者优先原则

  [2]排除原则:用于排除某项依赖的依赖jar包

 1   <dependency>
 2     <groupId>javax.servlet</groupId>
 3     <artifactId>servlet-api</artifactId>
 4     <version>2.5</version>
 5     <exclusions>
 6       <exclusion>
 7         <groupId></groupId>
 8         <artifactId></artifactId>
 9         <!--这里不需要指定版本号,由于是排除特定依赖的某个依赖jar包,所以版本固定,不需指定 -->
10       </exclusion>
11     </exclusions>
12     <scope>provided</scope>
13   </dependency>

  [3]版本锁定原则:一般用在继承项目的父项目中

 1     <dependencyManagement>
 2       <dependencies>
 3         <dependency>
 4           <!--jar包坐标 -->
 5           <groupId></groupId>
 6           <artifactId></artifactId>
 7           <version></version>
 8         </dependency>
 9       </dependencies>
10     </dependencyManagement>

  1、版本锁定之后,后面再使用到这个的 依赖的时候,就不要写版本号了!

  2、而且如果有多个相同的需要锁定的jar包的版本号一致的话,我们可以单独提取到properties标签中,

  3、在properties标签中,子标签自己定义,标签的值就是版本号,下面只需要在依赖的地方用${标签名}引用就可以了!

原文地址:https://www.cnblogs.com/java-zmj/p/7989047.html