1.原因
使用maven過程中,經常會遇到jar包重復加載或者jar包沖突的問題,但是有些jar包是由於maven加載了其他jar包自動引入的,並非自己主動添加的,導致和自己添加的jar包版本沖突
舉個栗子:
自動化測試過程中,引用了testng的jar包,同時引用了reportng的jar,但是reportng會自動加載依賴傳遞的testng的jar包,這樣就導致和自己添加的testng的jar包版本沖突
使用maven test 或者maven install命令執行測試時會報如下錯誤
[WARNING] The POM for org.testng:testng:jar:5.14.3 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
2.解決辦法:
打開pom.xml文件,在Dependency Hierarchy(依賴列表)中查看jar包的依賴層次關系
選擇需要移除的jar包右鍵Exclude...,然后保存pom.xml,這樣maven就不會再自動加載了,
或者也可以手動再pom中添加<exclusion>屬性限制加載版本
最后,因移除了jar包,項目可能會報錯
右鍵maven項目選擇maven->update project...
或者重新添加下依賴testng的jar包(自己添加的jar包也被移除了)