2013-06-25 267 views
6

抱歉再次提問。請讓我知道,如果我得到這個權利?Maven依賴關係與多個項目的依賴關係管理

我們有一個父母和多個模塊。現在,如果所有子項目都想繼承相同的jar文件(例如spring),我可以將它們放在父項目pom中,而不需要將它們包含在子項目中。

如果我在父pom下放置依賴項,它們不包含在所有的子項目中,但是我可以通過添加它們來包含我需要的項目(例如測試),而無需指定版本。

這是對的還是我完全沒有?希望我在我的問題上很清楚。

我需要的是一個巨大的家長pom與所有的依賴關係。孩子們應該自動獲得一些常見的依賴關係,並且每個孩子都需要特定的依賴關係。

感謝

哈里什

+0

[dependencymanagement和maven中的依賴項之間的差異]的可能重複(http://stackoverflow.com/questions/2619598/differences-between-dependencymanagement-and-dependencies-in-maven) – user902383

回答

16

在dependencyManagement聲明依賴版本,排除和其他東西,讓你管理他們在的地方(如父POM)多個項目。

在依賴關係中,您聲明瞭依賴關係的實際用法/需要,並且如果在父pom中管理依賴關係,則可以在不使用版本的情況下執行此操作,它將被繼承,因此可以在您的下游父母。

同樣的邏輯適用於插件管理和插件,包括插件配置。

+0

非常感謝您的回覆。所以我將在父pom中創建具有版本和排除的。然後,我需要在父pom中添加需要被所有子項繼承的,然後在子項中創建它們自己需要的。在下創建的依賴項不會被任何項目繼承。是對的嗎? – Harry

+0

仍然不是很清楚:在下的父pom中,我列出了帶有排除,版本等的所有依賴關係。然後在父類的下列出了一些將用於所有項目的依賴關係)。因此,下的其他依賴項不會包含在子項中,對吧? – Harry

+0

不要在父項中添加依賴項。只需將它們添加到實際依賴關係的位置即可。 depMgt將始終被繼承。如果你真的需要管理一堆代價,那麼你可以使用導入範圍,但是這會變得比必要的複雜。 –