日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何快速的解决Maven依赖冲突

發(fā)布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何快速的解决Maven依赖冲突 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么會出現(xiàn)依賴沖突

首先要說明Maven的依賴管理,具體的可以參考這邊?Maven學(xué)習——依賴管理?這篇文章,maven在依賴沖管理中有一下幾個原則。

  • 依賴是使用Maven坐標來定位的,而Maven坐標主要由GAV(groupId, artifactId, version)構(gòu)成。如果兩個相同的依賴包,如果groupId, artifactId, version不同,那么maven也認為這兩個是不同的。
  • 依賴會傳遞,A依賴了B,B依賴了C,那么A的依賴中就會出現(xiàn)B和C。
  • Maven對同一個groupId, artifactId的沖突仲裁,不是以version越大越保留,而是依賴路徑越短越優(yōu)先,然后進行保留。
  • 依賴的scope會影響依賴的影響范圍。
  • 當出現(xiàn)了依賴的時候如何快速定位沖突原因

    但出現(xiàn)了沖突的時候,比如系統(tǒng)出現(xiàn)了NoSuchMethodError,LinkageError?很有可能是你系統(tǒng)中出現(xiàn)了依賴沖突。出現(xiàn)沖突以后,可以按以下的步驟執(zhí)行

    1.確定出了問題的jar包名稱。通常可以在eclipse中查找沖突的類有在哪些依賴包里面出現(xiàn)了。并確定實際要使用的是那個包,沖突的包有哪些。

    2.通過mvn dependency:tree? >? tree.txt 導(dǎo)出全部的依賴。

    3.在導(dǎo)出的依賴文件中,查找問題相關(guān)的jar。確定這些jar是如何被依賴進來的,是直接依賴的還是通過傳遞依賴引入的。

    4. 找到相互沖突的并需要排除的依賴的頂級依賴,并分析沖突的原因,沖突的原因可能是以下幾種:

    • 同一個jar包但groupId, artifactId不同,這種沖突只能通過設(shè)定依賴的<exclusions> 來進行排除
    • 需要的版本jar包依賴路徑較長,這種沖突可以把想要版本的依賴直接什么在依賴中,這樣路徑就最短了優(yōu)先級最高。

    5.最后可以通過打包mvn install 來確認打出來的war包中是否有被排除的依賴。

    ------------------------------------------------------------------------------------------------------------------------

    來源:http://www.daniel-journey.com/archives/1125

    總結(jié)

    以上是生活随笔為你收集整理的如何快速的解决Maven依赖冲突的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。