2013-07-01 88 views
0

我有一個子模塊的項目。Maven的依賴層次 - 包括或不包括

Proj 
    ProjA 
    ProjB 
    ProjC 

ProjA依賴於ProjY,ProjY依賴於ProjX。

ProjA-->ProjY-->ProjX 

我在ProjA中指定了ProjY依賴項。 我應該單獨在ProjA中包含ProjX依賴項嗎? (傳遞依賴?)

如果ProjB對ProjX依賴什麼?我應該單獨包含它嗎?或者我可以將它包含在Porj(主)級別中?

回答

0

我指定的ProjA ProjY依賴。我應該在ProjA中單獨包含ProjX依賴項嗎? (傳遞依賴?)

由於Maven負責處理,您不應該在ProjA中包含對ProjX的依賴。如果沒有,一些配置是錯誤的。照顧傳遞依賴是Mavens的主要特性之一,並且可以節省管理依賴關係的麻煩(儘管有時候,當您獲得項目中的依賴關係時,您可能會感到煩惱)。

而如果ProjB對ProjX依賴?我應該單獨包含它嗎?或者,我可以 包括在Porj(主)水平?

是的,你應該單獨在ProjB中包含依賴項。爲了確保在所有模塊中獲得相同版本的ProjX,可以在父pom.xml的-element中定義它。你可以在定義模塊pom.xml中的依賴關係時忽略版本。

+1

謝謝,@湯姆。這有幫助! –

+0

如果我在Main Proj Level(頂層)中包含依賴項,那麼它是否可用於所有子模塊? –

+0

否。在父級別上,只能在中央位置定義與其版本的依賴關係,並且所有子模塊都可以在不需要定義版本的情況下自行包含此依賴關係。每個模塊都必須明確定義自己的依賴關係。 – Tom