maven构建生命周期详解:一次构建,多个阶段
本文将详细解释Maven构建生命周期,并澄清一些常见误解。 下图展示了Maven构建生命周期的各个阶段:

关键概念澄清:
Maven只有一个构建生命周期,但它包含多个阶段。每个阶段代表构建过程中的一个特定步骤。上图展示的阶段都属于Maven的默认构建生命周期。
- Maven生命周期: 定义了执行目标的顺序的整体过程。
- 生命周期阶段: Maven按照特定顺序执行的生命周期中的步骤。
Maven拥有三个内置的生命周期:
- 默认生命周期: 处理完整的构建过程,从项目验证到最终部署(如上图所示)。
- 清理生命周期: 专注于清理项目构建产生的文件。
- 站点生命周期: 专注于生成项目文档。
默认生命周期阶段执行顺序:
默认生命周期阶段按照严格的顺序执行。 例如,运行mvn package 命令会依次执行:validate -> compile -> test -> package。 每个阶段都会自动执行其之前的所有阶段。
下表更清晰地列出了默认生命周期阶段的执行顺序:
| 阶段 | 说明 |
|---|---|
clean |
清理项目(非默认生命周期的一部分,但通常在其之前执行) |
validate |
验证项目完整性 |
compile |
编译项目源代码 |
test |
运行单元测试 |
package |
将编译后的代码打包成可发布的格式(例如JAR或WAR文件) |
integration-test |
运行集成测试 (如果配置了) |
verify |
验证打包后的结果 |
install |
将打包后的工件安装到本地Maven仓库 |
site |
生成项目站点文档 (通常在持续集成/持续交付环境中跳过) |
deploy |
将打包后的工件部署到远程仓库 (例如,Nexus, Artifactory, Maven Central) |
跳过阶段:
您可以使用命令行选项跳过某些阶段。例如,mvn install -DskipTests 将跳过测试阶段。
结论:
上图中的阶段按照其自然的执行顺序排列,从validate(第一步)到deploy(最后一步)。 理解Maven生命周期和各个阶段的执行顺序对于有效地管理和构建Maven项目至关重要。









