第 5 章 流水线作战:CI、性能与构建故障 本章要回答的三个问题: Maven 怎么接进持续集成流水线?缓存、分层、质量门禁在哪些位置挂载? 构建从三分钟涨到二十分钟,病理是什么?加速手段的优先级怎么排? 内存溢出与插件罢工这两类流水线高发故障,处置套路是什么? 为什么会有这一章 前四章的成果都活在"一台机器、一个开发者"的世界里。第 5 章把作战室搬进持续集成流水线:每一次提交触发构建,每一次构建跑全套验证,质量雷达全天扫描。规模化的同时也引入三类新敌人——流水线本身的配置复杂度、随代码膨胀的构建耗时、只在 CI 环境暴露的资源与兼容问题。 本章的叙事线是一场真实的优化战役:risk-engine 的流水线从 18 分钟优化到 4 分钟,途中依次处置了慢构建(5.2)、内存溢出(5.
本章要回答的三个问题:
- Maven 怎么接进持续集成流水线?缓存、分层、质量门禁在哪些位置挂载?
- 构建从三分钟涨到二十分钟,病理是什么?加速手段的优先级怎么排?
- 内存溢出与插件罢工这两类流水线高发故障,处置套路是什么?
前四章的成果都活在"一台机器、一个开发者"的世界里。第 5 章把作战室搬进持续集成流水线:每一次提交触发构建,每一次构建跑全套验证,质量雷达全天扫描。规模化的同时也引入三类新敌人——流水线本身的配置复杂度、随代码膨胀的构建耗时、只在 CI 环境暴露的资源与兼容问题。
本章的叙事线是一场真实的优化战役:risk-engine 的流水线从 18 分钟优化到 4 分钟,途中依次处置了慢构建(5.2)、内存溢出(5.3)、插件兼容(5.4)三类故障,最后以可复现构建(5.5)与 SonarQube 质量雷达(5.6)收束建制。

| 节号 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 5.1 Maven 与持续集成 | 流水线怎么搭 | 阶段设计与缓存策略 |
| 5.2 慢构建病理分析 | 耗时怎么降 | 测量方法与优化优先级表 |
| 5.3 内存溢出处置 | OOM 怎么救 | fork 与内存参数配置表 |
| 5.4 插件版本兼容 | 罢工怎么修 | 版本锁定与兼容矩阵意识 |
| 5.5 可复现构建实践 | 结果怎么稳 | 三要素清单与验证方法 |
| 5.6 SonarQube 质量雷达 | 质量怎么守 | 扫描接入与门禁配置 |
整章沿着一条真实的耗时曲线推进:优化前 18 分钟(反馈半径严重超标)→ 测试分层与快照瘦身后 8 分钟 → 并行与选择性构建后 4.2 分钟(回到红线内)。曲线的每个拐点对应一节的处方,5.2 节的优先级表是全章的作战地图。读的时候可以带着自己团队的当前耗时对号入座——你们正卡在哪个拐点,就先读哪一节。
耗时之外还有两条暗线同步推进:稳定性线(内存溢出与插件兼容两类故障的处置,5.3 与 5.4 节)与制度线(可复现三要素与质量门禁,5.5 与 5.6 节)。速度、稳定、制度三线并进是流水线作战与个人本地构建的本质区别——本地构建只需要对自己负责,流水线是全队共享的生产资料,标准自然不同。
流水线稳态运行后,工程化改造进入交付形态的最后一程。第 6 章面向跨栈协同与未来战场:Spring 深度协同、容器镜像、Kotlin 混编、GraalVM 原生编译,以及模块化与云原生的演进方向。