91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

maven解決包沖突方法詳解

發布時間:2020-08-19 12:56:55 來源:腳本之家 閱讀:221 作者:Yujiaao 欄目:編程語言

Maven根據最近勝利策略(nearest wins strategy)的原則工作,同時解決依賴沖突,這意味著它在依賴樹中找到更接近的版本,它將采用該版本并忽略其他版本。實際上Maven有點懶,所以每當它開始尋找依賴時,它就會從根目錄開始遍歷樹,無論它先前找到哪個版本,它都會選擇它并從它們返回而不進一步。如果它進一步尋找依賴版本,可能會有機找到一些更新的版本,但它從第一個發現的版本那里返回,并采用舊版本并用它來解決依賴關系。

可以用下面的命令顯示依賴樹:

mvn dependency:tree

老實說,這不是maven的錯,因為它想盡快完成這項工作。最重要的是,maven 不知道你的應用程序期望哪個版本,所以Maven會告訴你,嘿,你有責任讓我知道你想要哪個版本,如果你不告訴我,我會以自己的方式工作,即更近更好。

請下載本文的github源代碼:

https://github.com/yujiaao/maven-dependency-conflict-demo

我們有一個 web 應用 resolve-web,該工程依賴于 project-A 和project-B,project-A 依賴于 project-common 的 1.0 版本并調用其中的 sayHello() 方法。project-B 依賴于project-C,而project-C又進一步依賴于project-common的2.0 版本并調用其中的 sayGoodBye() 方法。project-common 的 1.0 和 2.0 版本是不同的,1.0 中之包含sayHello() 方法,而2.0 中包含了sayHello()和sayGoodBye()兩個方法。整個項目的依賴關系如下圖:

maven解決包沖突方法詳解

根據Maven的transitive依賴機制,resolve-web 將同時依賴于project-common 的 1.0 和 2.0 版本,這就造成了依賴沖突。而根據最近獲勝策略,Maven 將選擇 project-common 的 1.0 版本作為最終的依賴。

這和 Gradle 不同,Gradle 在默認情況下將選擇最新的版本作為獲勝版本。

而對于Maven,由于proejct-common的1.0版本比2.0版本在依賴樹中離resolve-web更近,故 1.0 版本獲勝。在 resolve-web 中執行mvn dependency:tree -Dverbose 可以看到 resolve-web 的依賴關系:

[INFO] resolve-web:resolve-web:war:1.0-SNAPSHOT
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- project-B:project-B:jar:1.0:compile
[INFO] | \- project-C:project-C:jar:1.0:compile
[INFO] |   \- (project-common:project-commmon:jar:2.0:compile - omitted for conflict with 1.0)
[INFO] +- project-A:project-A:jar:1.0:compile
[INFO] | \- project-common:project-commmon:jar:1.0:compile
[INFO] \- javax.servlet:servlet-api:jar:2.4:provided

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东辽县| 和平区| 华宁县| 怀安县| 当涂县| 山阴县| 定结县| 望江县| 静乐县| 独山县| 唐山市| 赤壁市| 治多县| 永济市| 余姚市| 永川市| 镇原县| 张家口市| 巴塘县| 塘沽区| 闻喜县| 江源县| 永新县| 扬州市| 阜宁县| 武夷山市| 巴彦县| 仲巴县| 敖汉旗| 锡林郭勒盟| 沁水县| 华蓥市| 巢湖市| 沙河市| 合山市| 陆川县| 乌兰浩特市| 宕昌县| 嵊泗县| 济阳县| 鹤岗市|