1. 程式人生 > >maven依賴jar包時版本衝突的解決

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

共有四種解決方式:
1、第一宣告優先原則:
在pom.xml配置檔案中,如果有兩個名稱相同版本不同的依賴宣告,那麼先寫的會生效。
所以,先宣告自己要用的版本的jar包即可。
2、路徑近者優先:
直接依賴優先於傳遞依賴,如果傳遞依賴的jar包版本衝突了,那麼可以自己宣告一個指定版本的依賴jar,即可解決衝突。
3、排出原則:
傳遞依賴衝突時,可以在不需要的jar的傳遞依賴中宣告排除,從而解決衝突。
例子:

<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>

4、版本鎖定原則(最常使用)
在配置檔案pom.xml中先宣告要使用哪個版本的相應jar包,聲明後其他版本的jar包一律不依賴。解決了依賴衝突。
例子:

<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>