模块只是组织事物的一种方式。
在多模块构建中,您可以在一个步骤中构建整个工件树(请记住Joel Test)。但是,其中每个项目都将是一个单独的项目,可以单独引用为依赖项。
下面是一个示例布局,用括号括起来。
root (pom)
- project1 (jar)
- project2 (war) -> references project1 as dependency
- project3 (jar)
- project4 (war) -> references project3 as dependency
- project5 (ear) -> references project2 and project4 as dependency
调用根目录以构建整个树。mvn install
此处的假设是,项目 1 仅由项目 2 使用,而项目 3 仅由项目 4 使用。否则,这是一个更复杂的方案。
root (pom)
- project1 (jar)
- project2 (jar)
- project3 (war) -> references project1 and project2 as dependency of scope provided
- project4 (war) -> references project1 and project2 as dependency of scope provided
- project5 (ear) -> references project1 through project4 as dependency
因此,模块消除了独立构建多个项目的工作,但您仍然需要自己管理依赖项。