声明为依赖项或父项

时间:2012-01-18 01:13:03

标签: inheritance maven dependencies

如果您有项目A且它需要项目B的所有依赖项,您是否使用继承或项目A的依赖项将项目B声明为项目A的父项?他们似乎有同样的效果。

2 个答案:

答案 0 :(得分:9)

我会说,如果项目B 意图充当“普遍父母”或某些 - 也就是说,许多项目具有相同依赖关系的起点(或者依赖于相同的起始点)然后继续前进,使B成为parent

否则,如果它实际上更像是一个“方便的东西” - 例如它有实用程序/核心类型的方法,许多项目将找到有用的,但不依赖于他们的生存,然后它在逻辑上是一种依赖。

您甚至可以考虑将项目B分成两行。这就是我过去所做的:

mygroup-parent是一个项目,它只包含一个POM文件,其中包含我希望每个项目的依赖项 - 强制执行标准方法。例如,我在那里有TestNGMockito

mygroup-core是一个完全成熟的Java项目,有很多方便的东西可以使用很多,但不是必须的。我有针对我的网站特定内容的辅助方法,以及Apache HttpClient和Google Guava等依赖项。

答案 1 :(得分:6)

这两种方法不同,一种是继承,另一种是简单的依赖。

通过依赖,您只能拥有项目B的二进制传递依赖项。

通过使用作为父项目,您将继承插件,构建模型,存储库,依赖关系管理,依赖关系等配置,具体取决于具体情况。

我的经验法则是scm配置,项目配置,开发或公司标准,我使用父项目(继承)。