最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

maven解決包沖突方法詳解

 更新時(shí)間:2019年10月27日 10:17:01   作者:Yujiaao  
這篇文章主要介紹了maven解決包沖突方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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

可以用下面的命令顯示依賴(lài)樹(shù):

mvn dependency:tree

老實(shí)說(shuō),這不是maven的錯(cuò),因?yàn)樗氡M快完成這項(xiàng)工作。最重要的是,maven 不知道你的應(yīng)用程序期望哪個(gè)版本,所以Maven會(huì)告訴你,嘿,你有責(zé)任讓我知道你想要哪個(gè)版本,如果你不告訴我,我會(huì)以自己的方式工作,即更近更好。

請(qǐng)下載本文的github源代碼:

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

我們有一個(gè) web 應(yīng)用 resolve-web,該工程依賴(lài)于 project-A 和project-B,project-A 依賴(lài)于 project-common 的 1.0 版本并調(diào)用其中的 sayHello() 方法。project-B 依賴(lài)于project-C,而project-C又進(jìn)一步依賴(lài)于project-common的2.0 版本并調(diào)用其中的 sayGoodBye() 方法。project-common 的 1.0 和 2.0 版本是不同的,1.0 中之包含sayHello() 方法,而2.0 中包含了sayHello()和sayGoodBye()兩個(gè)方法。整個(gè)項(xiàng)目的依賴(lài)關(guān)系如下圖:

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

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

而對(duì)于Maven,由于proejct-common的1.0版本比2.0版本在依賴(lài)樹(shù)中離resolve-web更近,故 1.0 版本獲勝。在 resolve-web 中執(zhí)行mvn dependency:tree -Dverbose 可以看到 resolve-web 的依賴(lài)關(guān)系:

[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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

靖江市| 兴城市| 板桥市| 北安市| 正安县| 上虞市| 阿拉善盟| 阿拉尔市| 元朗区| 昌邑市| 海伦市| 定兴县| 黔西| 石景山区| 怀来县| 连州市| 宁蒗| 铜梁县| 龙泉市| 清水县| 武夷山市| 凉山| 长葛市| 福清市| 荣成市| 庆元县| 宁陵县| 孟州市| 九江县| 密云县| 上杭县| 台州市| 临桂县| 巫山县| 榕江县| 揭东县| 井陉县| 阿荣旗| 呼伦贝尔市| 团风县| 固镇县|