maven中依赖版本冲突如何解决--四种方式(四种原则)

maven中依赖版本冲突如何解决--四种方式(四种原则)

一、第一声明优先原则

示例:

<dependencies><!--   spring-beans-4.2.4 -->  <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-context</artifactId>  <version>4.2.4.RELEASE</version>  </dependency>  <!--   spring-beans-3.0.5 -->  <dependency>  <groupId>org.apache.struts</groupId>  <artifactId>struts2-spring-plugin</artifactId>  <version>2.3.24</version>  </dependency>

二、路径近者优先原则

示例:

<dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-beans</artifactId>  <version>4.2.4.RELEASE</version></dependency>


三、排除原则

示例:

<dependency>  <groupId>org.apache.struts</groupId>  <artifactId>struts2-spring-plugin</artifactId>  <version>2.3.24</version>  <exclusions>     <exclusion>        <groupId>org.springframework</groupId>        <artifactId>spring-beans</artifactId>     </exclusion>       </exclusions></dependency>

四、版本锁定原则

示例:

<properties><spring.version>4.2.4.RELEASE</spring.version><hibernate.version>5.0.7.Final</hibernate.version><struts.version>2.3.24</struts.version></properties><!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 --><dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency>        </dependencies></dependencyManagement>

推荐阅读