Maven聚合构建需创建packaging为pom的父项目,通过modules声明子模块路径,子模块需以parent指向父项目,并由dependencyManagement统一管理依赖版本;构建时在父目录执行mvn命令即可自动按依赖顺序构建所有模块。

在 Maven 中用聚合构建管理模块,核心是建一个“空的父项目”,它不写业务代码,只负责把多个子模块组织起来,统一执行 mvn clean install 这类命令时,所有模块自动按依赖顺序依次构建。
父项目必须设为 pom 打包类型
父项目的 pom.xml 中 <packaging> 值只能是 pom,这是 Maven 识别聚合项目的硬性要求。如果不是 pom,Maven 会忽略 <modules> 配置,子模块也不会被纳入构建范围。
- 正确写法:
<packaging>pom</packaging> - 错误写法:
<packaging>jar</packaging>或留空(默认 jar)
用 <modules> 显式声明子模块路径
在父 POM 的 <modules> 标签下,逐行列出每个子模块相对于父项目的路径。路径可以是同级目录(如 <module>user-service</module>),也可以是上层目录(如 <module>../common-util</module>),但必须确保路径真实存在且包含有效的 pom.xml。
- 模块顺序不影响构建顺序,Maven 会自动解析依赖关系决定执行先后
- 子模块本身也需在自己的
pom.xml中通过<parent>指向该父项目,才能共享依赖和插件配置
依赖版本统一由 dependencyManagement 管理
父项目中用 <dependencyManagement> 声明依赖的坐标和版本,这不会实际引入依赖;子模块需在自己的 <dependencies> 中显式写出所需依赖,但可省略 <version> 和 <scope>(若父中已定义)。
提供端到端的高端代理设置和使用指导,包括代理类型选择、地区定向、访问配置、API密钥验证和监控。
立即学习“Java免费学习笔记(深入)”;
- 例如父项目定义了 Spring Boot Web 版本为 3.3.3,子模块只需写 groupId 和 artifactId
- 这样避免各模块版本不一致,也方便集中升级
构建时直接在父目录执行命令即可
无需进入任何一个子模块,只要在父项目根目录下运行 Maven 命令,比如:
-
mvn compile:编译全部模块的源码 -
mvn test:运行所有模块的测试 -
mvn install:打包并安装到本地仓库(含所有子模块产出)
整个过程由 Maven 自动调度,子模块间若有依赖,会先构建被依赖方,再构建依赖方。

















