全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-23 8 分钟 ✍️ juanwangdev

反应堆构建与顺序控制

Maven 反应堆(Reactor)自动计算多模块构建顺序并执行。

反应堆概念

定义

反应堆是 Maven 多模块构建的核心机制,负责:

  • 收集所有模块
  • 计算构建顺序
  • 依次执行构建

构建流程

Bash
收集模块 → 计算依赖关系 → 排序 → 依次构建

构建顺序算法

依赖拓扑排序

Bash
依赖关系图:
common(无依赖)
api → common
dao → api
service → api, dao
web → service

构建顺序:
common → api → dao → service → web

规则

规则说明
无依赖优先最底层模块最先构建
依赖者后置被依赖模块先于依赖者

查看构建顺序

使用命令

Bash
mvn validate

输出示例

Bash
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] parent-project
[INFO] common
[INFO] api
[INFO] dao
[INFO] service
[INFO] web

-pl 指定模块

基本用法

Bash
# 构建指定模块
mvn compile -pl service

# 构建多个模块
mvn compile -pl service,dao

# 相对路径指定
mvn compile -pl :service

参数说明

参数说明
-pl module指定模块名或路径
-pl :artifactId使用 artifactId 指定
-pl a,b,c多模块逗号分隔

-am 同时构建依赖

also-make

Bash
# 构建 web 及其依赖的所有模块
mvn compile -pl web -am

执行顺序

Bash
web 依赖 service
service 依赖 api
api 依赖 common

构建顺序:
common → api → service → web

适用场景

场景说明
单模块测试仅构建相关模块
局部修改验证快速验证变更影响范围

-amd 构建依赖者

also-make-dependents

Bash
# 构建 common 及依赖它的所有模块
mvn compile -pl common -amd

执行顺序

Bash
common 被依赖
api 依赖 common
dao 依赖 api
service 依赖 api

构建:
common → api → dao → service → web

-rf 从指定模块开始

resume-from

Bash
# 从 service 开始构建后续模块
mvn compile -rf service

适用场景

构建中断后从断点继续。

组合使用

常见组合

Bash
# 仅构建 web 及其依赖
mvn clean install -pl web -am

# 构建 common 及其下游
mvn clean install -pl common -amd

# 从 api 开始构建
mvn clean install -rf api

跳过模块

排除模块

Bash
# 排除 web 模块构建
mvn clean install -pl !web

多模块排除

text
mvn clean install -pl !web,!admin

并行构建

-T 参数

text
# 4线程并行构建
mvn clean install -T 4

# 每核心1线程
mvn clean install -T 1C

# 每核心2线程
mvn clean install -T 2C

并行条件

模块间无依赖时可并行:

text
common 独立构建
api、dao 可并行(都依赖 common,但无相互依赖)

构建失败处理

失败后继续

text
mvn clean install --fail-at-end

失败立即停止

text
mvn clean install --fail-fast

失败从不停止

text
mvn clean install --fail-never

要点总结

  • 反应堆自动计算模块构建顺序
  • 依赖拓扑排序:无依赖先构建
  • -pl 指定构建模块
  • -am 同时构建依赖模块
  • -amd 同时构建依赖者模块
  • -rf 从指定模块开始继续
  • -T 并行构建加速

📝 发现内容有误?点击此处直接编辑

← 上一篇 依赖可视化与分析
下一篇 → 多模块构建优化策略
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库