Maven高級,依賴傳遞和解決沖突,版本鎖定,提取統一版本號


一、依賴傳遞沖突解決

什么是依賴?

在maven的pom文件中添加三方庫坐標,即引入三方依賴。

依賴傳遞

項目依賴了A,A依賴了B,項目自動依賴了B

注意:父項目中的依賴有 <scope> 標簽屬性為   test  provided  則不會依賴傳遞

依賴沖突

項目依賴了A和B,A 依賴了C-1.1、D-1.1, B依賴了C-1.2、D-1.2,E-1.2。此時C、D庫存在版本沖突

解決沖突

紅線代表依賴被優化(失效)

 顯示紅色實線的代表沖突。紅色虛線,告訴你同一個jar都在哪里被多次引用了。

二、maven自帶調優原則

根據三方庫導入順序,自動優化jar包

自動優化原則有兩條

第一聲明者優先: 跟導入依賴的順序有關,先導入的優先級更高

第二路徑近者優先,路徑指的是依賴關系圖中的位置

三、排除依賴

 此時有重復依賴,(重復不一定沖突,版本不同會沖突

我們想排除jdbc包下的core依賴使用代碼

<!--spring的jdbc包-->
<dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-jdbc</artifactId>
     <version>5.1.12.RELEASE</version>
     <exclusions>
         <exclusion>
             <artifactId>spring-core</artifactId>
             <groupId>org.springframework</groupId>
         </exclusion>
     </exclusions>
</dependency>

四、鎖定版本

如果多個庫,交叉導入了同一個庫,意思就是多個相同依賴的版本不同,此時我們可以通過dependencyManagement鎖定庫的版本。

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>5.2.5.RELEASE</version>
            </dependency>
        </dependencies>
</dependencyManagement>
<dependencies>
        <!--spring的jdbc包  此時導入被鎖定的包,不需要寫版本號,若寫了就以就近原則下載  -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
 </dependencies>

五、提取版本號

選中版本,ctrl+alt+v,提取版本號,自動放入properties中

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM