maven依賴jar包時版本衝突的解決

 

共有四種解決方式: 
一、第一聲明優先原則: 
在pom.xml配置文件中,若是有兩個名稱相同版本不一樣的依賴聲明,那麼先寫的會生效。 
因此,先聲明本身要用的版本的jar包便可。 
二、路徑近者優先: 
直接依賴優先於傳遞依賴,若是傳遞依賴的jar包版本衝突了,那麼能夠本身聲明一個指定版本的依賴jar,便可解決衝突。 
三、排出原則: 
傳遞依賴衝突時,能夠在不須要的jar的傳遞依賴中聲明排除,從而解決衝突。 
例子:spring

<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

四、版本鎖定原則(最常使用) 
在配置文件pom.xml中先聲明要使用哪一個版本的相應jar包,聲明後其餘版本的jar包一概不依賴。解決了依賴衝突。 
例子:apache

<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.2四、spring4.2.四、hibernate5.0.7 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </dependencyManagement>
相關文章
相關標籤/搜索