Maven 生命周期阶段详解
IntelliJ IDEA 中 Maven 项目的 Lifecycle(生命周期)命令:
| 命令 | 作用 | 说明 |
|---|---|---|
| clean | 清理 | 删除target/目录,清除之前编译生成的所有文件(.class、jar、war 等) |
| validate | 验证 | 检查项目结构是否正确,pom.xml 是否有语法错误,依赖是否可解析 |
| compile | 编译 | 将src/main/java下的源代码编译成.class文件,输出到target/classes |
| test | 测试 | 运行src/test/java下的单元测试(默认使用 JUnit),编译并执行测试用例 |
| package | 打包 | 将编译后的代码打包成指定格式(如.jar、.war、.ear),输出到target/ |
| verify | 验证 | 检查打包结果是否符合质量标准(如集成测试、代码覆盖率检查等) |
| install | 安装 | 将打包好的构件安装到本地 Maven 仓库(~/.m2/repository),供其他项目引用 |
| site | 生成站点 | 生成项目的文档站点(包括项目信息、依赖报告、测试报告等 HTML 文档) |
| deploy | 部署 | 将构件发布到远程 Maven 仓库(如公司私服 Nexus、Maven Central),供团队共享 |
关键特性:生命周期是顺序执行的
Maven 的生命周期是链式的,执行后面的阶段会自动执行前面的阶段。
例如:
- 执行 mvn package → 实际会依次执行:validate → compile → test → package
- 执行 mvn install → 实际会依次执行:validate → compile → test → package → verify → install
常用组合命令
# 最常用:清理 + 打包mvn clean package# 清理 + 打包 + 安装到本地仓库(开发时最常用)mvn cleaninstall# 跳过测试(快速打包)mvn clean package-DskipTests# 只编译不测试mvn clean compile# 生成项目文档站点mvn clean site# 发布到远程仓库mvn clean deploy简单记忆口诀
清验证编测,包验安部点
(clean → validate → compile → test → package → verify → install → deploy → site)
