2013-06-25 61 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将始终被继承。如果你真的需要管理一堆代价,那么你可以使用导入范围,但是这会变得比必要的复杂。 –