嵌套Maven多模块优于简单依赖

时间:2018-03-01 17:43:04

标签: java maven maven-2 maven-3

这个问题是this SO questions的扩展,但在我的情况下,我不仅有模块,而且它们是嵌套的,嵌套模块有什么好处。例如,如果您有像

这样的结构

parent |-> child1 | - > child2 |-> child3 |-> child4 |-> child5

你想要

吗?

parent |-> child1 |-> child2 |-> child3 |-> child4 |-> child5

这两种方法的优点和缺点是什么。

1 个答案:

答案 0 :(得分:1)

多模块项目结构适用于,当你想为多个子项目执行maven命令而不必关心构建的顺序时(哪一个依赖于其他项目是自动处理的)例如:安装所有的模块或为所有模块生成javadoc。

父母结构有利于;从父母链继承依赖,插件等。在你提供的示例中,child5将依赖于父母已经定义的每个依赖项。(在他们的<dependencies>标签中)但是作为一件好事,child5不必为其链指定一个依赖版本在<dependencyManagement>标签中定义的父母。

如果你的child1-child5对不同的业务逻辑负责(因此会有非常广泛的依赖关系),应该使用多模块。

最受欢迎的maven项目spring-boot之一具有这两个概念。我建议您查看https://github.com/spring-projects/spring-boot/tree/master/spring-boot-project