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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章