Jef*_*mos 7 inheritance dependencies maven
如果您有项目A并且它需要项目B的所有依赖项,您是否使用继承或项目A的依赖项将项目B声明为项目A的父项?它们似乎具有相同的效果.
我想说,如果项目B 打算充当"普遍父级"或某些东西 - 也就是说,许多具有相同依赖关系的项目的起点(或者依赖关系的起点相同),那么请继续前进并制作B这个parent.
否则,如果它实际上更像是一个"方便的东西" - 例如它有实用程序/核心类型的方法,很多项目会觉得有用,但不依赖于它们的存在,那么它在逻辑上是一个依赖.
您甚至可以考虑将项目B分成两行.这就是我过去所做的:
mygroup-parent是一个项目,它只包含一个POM文件,其中包含我希望每个项目都能获得的依赖项- 强制执行标准方法.例如,我有TestNG和Mockito在那里.
mygroup-core是一个完全成熟的Java项目,有很多方便使用的东西,但不是必须的.我有针对我的网站特定内容的辅助方法,以及Apache HttpClient和Google 等依赖项Guava.
小智 7
这两种方法是不同的,一种是继承,另一种是简单的依赖.
通过依赖,您将只拥有项目B的二进制传递依赖项.
通过使用作为父项目,您将继承插件,构建模型,存储库,依赖项管理,依赖项等配置,具体取决于具体情况.
我的经验法则是scm配置,项目配置,开发或公司标准,我使用父项目(继承).