分享知識-快樂自己:Maven 相關原理
依賴原則:解決模組工程之間的Jar衝突問題
1):情定設定:驗證路徑最短者優先原則
建立三個工程如下:
Hello:並且以來 log4j.1.2.17.jar
HelloFriend:依賴了工程 Hello,按理說HelloFriend也會間接的依賴了 log4j.1.2.17.jar 但是由於一些特殊原因 明確聲明瞭 為 .14 的jar
MakeFriends:依賴了 HelloFriend ,大家一開始以為會間接的會依賴兩個 jar。實際MakeFriends 只能依賴一個。(定址一個路徑最近的)
2):情定設定:路徑相同時先宣告者優先
建立三個工程如下:
HelloFriend:依賴 log4j.1.2.14
OurFriends:依賴 log4j.1.2.17
MakeFriends:分別引用依賴,HelloFriend 與 OurFriends
這裡的 "宣告" 的先後順序指的是 dependency 標籤配置的先後順序
3):同一版本號
這裡的版本統一為4.0的(如果統一版本號怎麼辦那?)
配置方式:如下(使用 properties 自定義同一版本號)
使用 ${ atguigu.spring.version }
4):繼承
現狀:Hello 依賴的 junit :4.0
HelloFriend 依賴的 junit:4.0
MakeFriends 依賴的 junit:4.9
需求:統一管理各個模組工程中對 junit 依賴的版本
解決思路:將 junit 依賴統一提取到 ” 父 “ 工程中,在子工程宣告 junit 依賴時不指定版本。
以父工程中統一設定的為準。
操作步驟:
1、建立一個 Maven 工程作為父工程,注意:打包方式為 Pom
2、在子工程中宣告對父工程的引用
3、將子工程的座標中與父工程座標中重複的內容刪除
4、在父工程中統一 junit 的依賴
5、在子工程中刪除 junit 依賴的版本號部分。
注意:配置整合後,執行安裝(初始化到本地)命令時先要安裝父工程。
5):聚合
作用:一鍵安裝各個模組工程
配置方式:在一個 總的聚合工程 中配置各個參與聚合的模組