Maven 的各生命周期概念、阶段、作用(clean, validate, compile, test, package, verify, intstall, site, deploy) 一文详解。

Maven 生命周期详解

image

Maven 的构建过程是由 生命周期(Lifecycle) 控制的,每个生命周期包含多个 阶段(Phase)。一个完整的构建流程大致如下:

1. Clean Lifecycle

作用:清理上一次构建生成的文件。

阶段

  • pre-clean:执行清理前的准备工作
  • clean:删除 target 目录
  • post-clean:清理后的收尾操作

示例

mvn clean

通俗解释:就像打扫房间,把旧的产物(target 文件夹)全部清理掉,为新的构建腾出空间。

2. Default Lifecycle

这是 Maven 最常用的生命周期,包括 编译、测试、打包、安装、部署等阶段。

2.1 validate

作用:验证项目是否正确、必要信息是否齐全。

示例

mvn validate

通俗解释:就像开工前检查材料和工具是否准备齐全。

2.2 compile

作用:编译项目源代码(src/main/java)。

示例

mvn compile

通俗解释:把写好的 Java 源代码编译成 .class 文件。

2.3 test

作用:使用测试框架(如 JUnit)对编译好的代码进行单元测试(src/test/java)。

示例

mvn test

通俗解释:像 QA 测试员一样检查你的程序有没有逻辑错误。

2.4 package

作用:将编译好的代码打包成 JAR/WAR 文件。

示例

mvn package

通俗解释:就像把成品装箱打包,准备分发。

2.5 verify

作用:执行集成测试,验证软件包是否满足质量要求。

示例

mvn verify

通俗解释:不仅单元测试通过,还要确认整个系统在集成后能正常工作。

2.6 install

作用:将打包好的 JAR/WAR 安装到本地 Maven 仓库(默认 ~/.m2/repository),供其他项目使用。

示例

mvn install

通俗解释:把成品放到自己的仓库,就像放到自己的工具箱里,方便其他项目取用。

2.7 deploy

作用:将打包好的软件部署到远程仓库(例如公司 Nexus、Artifactory)。

示例

mvn deploy

通俗解释:把你的软件正式发到远程仓库,团队其他成员就可以使用了。

3. Site Lifecycle

作用:生成项目文档站点。

阶段

  • pre-site:站点生成前准备
  • site:生成站点(文档、报告)
  • post-site:站点生成后处理
  • site-deploy:将站点部署到服务器

示例

mvn site

通俗解释:自动生成项目文档、测试报告、依赖分析等,就像做一个项目展示网站。

4. 生命周期顺序总结

生命周期阶段 作用 示例
clean 清理旧文件 mvn clean
validate 校验项目配置 mvn validate
compile 编译源码 mvn compile
test 单元测试 mvn test
package 打包 JAR/WAR mvn package
verify 集成测试 mvn verify
install 安装到本地仓库 mvn install
deploy 部署到远程仓库 mvn deploy
site 生成项目文档 mvn site

通俗理解

  • clean → 打扫房间
  • validate → 检查工具
  • compile → 写好的代码编译成可用程序
  • test → QA 测试程序
  • package → 打包成箱子
  • verify → 集成检查
  • install → 放到自己仓库
  • deploy → 发到远程仓库
  • site → 做一个项目展示网站
posted @ 2025-09-11 16:04  AlphaGeek  阅读(110)  评论(0)    收藏  举报