如何快速的解决Maven依赖冲突
為什么會出現(xiàn)依賴沖突
首先要說明Maven的依賴管理,具體的可以參考這邊?Maven學(xué)習——依賴管理?這篇文章,maven在依賴沖管理中有一下幾個原則。
當出現(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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谭浩强c语言规范化的指数形式,C语言程序
- 下一篇: mdt 计算机名_配置 MDT 部署共享