有兩個項目:
A ----有一個lib commons vers。 1.3.7 ---(取決於B)
B ----有lib commons vers。 1.2.5依賴版本衝突maven
所以,我們正在建設項目B,lib commons vers。 1.2.5將被包含並安裝在本地存儲庫中,然後...如果我們執行構建的A(依賴於B),Maven將決定lib commons vers。 1.3.7必須包括在內,因爲lib距離樹根的距離最小...... 我知道如果我們將工件的版本設置爲:1.2.5-這是推薦的版本。但是如果我們把它放在[]中 - 這是一個很難的要求,maven應該應用另一個策略來解決版本衝突 - 以包含該工件的推薦版本。但是當我嘗試這樣做的時候,它並沒有起作用,因爲Maven會從loc庫獲取工件,其中包含對lib commons vers的引用。 1.2.5在清單文件中,但包含lib - commons vers。 1.3.7。你能否告訴我該如何解決這個問題,或者在列表中可能有一些工具或者maven插件可以告訴你這樣的問題。
@jonasas,你的意思是說,在項目的構建過程中,項目B將包含沒有公共庫?但這不是一個解決方案。實際上項目A對項目B一無所知,maven只提供B.jar和commons vers。 1.2.5在MANIFEST文件中,但由於「最接近勝利」策略Maven決定lib commons vers。應該包括1.3.7。那就是問題 – gizzy
如果你不想使用1.3.7版本,並且想要使用庫的依賴項目的版本(1.2.5),你不能直接從項目A中刪除直接依賴項嗎? – jonasnas