2016-07-14 129 views
0

假設我在dependencyManagement部分定義了一些工件的版本。確切地說,dependencyManagement優先於依賴性定義中的版本嗎?

該版本定義覆蓋傳遞性依賴關係中的所有版本定義是否正確?

還是它只解決版本衝突?

因此,如果我在我的dependencyManagement中將foo放入版本2.0.0,並且某些傳遞依賴項在版本1.0.0中具有foo,那麼我是否總是獲得2.0.0?

回答

0

這就是Maven 2的工作原理。一般來說這就是基本規則:無論你的項目指定什麼都優先於你的依賴指定。

然而,根據Maven 3.x Compatibility Notes,這個過程是在Maven的3改爲現在使用Aether並且應該是更聰明,甚至可能採取語義版本考慮到即使不使用version ranges。在我看來,文件分散而不是很清楚。不過,我認爲主要區別在於兩個依賴項之間的衝突是如何解決的,而不是在項目和依賴項之間。所以第一條規則仍然適用。

相關問題