Maven 有标准构建生命周期(Standard Build Lifecycle)的概念。这意味着构建和分发特定工件(项目)的过程有明确的定义。对于构建项目的人来说,这意味着只需要学习一组简单的命令来构建任何 Maven 项目,而 POM 将确保他们得到期望的结果。Maven 存在三种内置构建生命周期:默认、清理和站点。 default 生命周期处理项目部署, clean 生命周期处理项目清理,而 site 生命周期处理项目网站的创建。
构建生命周期由不同的构建阶段列表定义,其中构建阶段代表生命周期中的一个阶段。
常用的构建阶段包含:
命令 | 描述 |
---|---|
mvn clean | 清理编译或打包后的项目结构 |
mvn validate | 验证项目是否正确且所有必要信息都可用 |
mvn compile | 编译项目,生成 target 文件 |
mvn test | 执行测试源码 |
mvn package | 打包项目,生成 jar 或 war 文件 |
mvn verify | 运行集成测试结果检查,确保满足质量标准 |
mvn install | 打包后上传到 maven 本地仓库 |
mvn site | 生成站点 |
mvn deploy | 只打包,上传到 maven 私服仓库 |
这些构建命令(阶段)是 Maven 提供的,对于 IDEA 来说,提供了和其对应的可视化操作方法:

当你执行 mvn 命令(或操作 idea 提供的这些生命周期中的阶段)时,你其实是在告诉 Maven 执行生命周期中的某个或某几个阶段(phase)。Maven 会按顺序执行你指定阶段之前的所有阶段。
clean
双击 IDEA 中 maven 的生命周期中的 clean,等价于执行 mvn clean 命令。这个命令会删除 target 目录。target 目录存放着所有编译、测试、打包生成的文件。在执行新的构建之前先清理,可以确保构建的纯净性,避免旧文件对新构建产生影响。
validate
双击 IDEA 中 maven 的生命周期中的 clean,等价于执行 mvn validate 命令。它的作用是验证项目是否正确,它会检查 pom.xml 文件是否有效,以及项目所需的目录结构是否存在。
compile
双击 IDEA 中 maven 的生命周期中的 compile,等价于执行 mvn compile 命令。这个命令会将 src/main/java 目录下的所有 .java 文件编译成 .class 字节码文件,并将其放入 target/classes 目录。
test
双击 IDEA 中 maven 的生命周期中的 test,等价于执行 mvn test 命令。作用是运行项目的单元测试。这个命令会编译 src/test/java 目录下的测试代码,并运行所有测试。如果任何一个测试失败,构建过程将停止。
package
双击 IDEA 中 maven 的生命周期中的 test,等价于执行 mvn package 命令。作用是将编译好的代码打包,根据 pom.xml 中 的定义,将项目打包成 JAR、WAR 或其他格式。例如,对于一个 jar 的项目,该命令会生成一个 JAR 文件并将其放入 target 目录。
verify
双击 IDEA 中 maven 的生命周期中的 test,等价于执行 mvn verify 命令。作用是运行集成测试并进行质量检查,这个阶段通常用于运行集成测试或执行静态代码分析等质量检查,确保项目质量达标。
install
双击 IDEA 中 maven 的生命周期中的 install,等价于执行 mvn install 命令。作用是将项目构件安装到本地仓库,这个命令会将打包好的文件(比如 JAR 包)连同 pom.xml 一起安装到你的本地 Maven 仓库(比如:~/.m2/repository)中。这样,其他本地项目就可以像依赖远程仓库中的构件一样,依赖这个构件。
site
双击 IDEA 中 maven 的生命周期中的 site,等价于执行 mvn site 命令。作用是生成项目文档和报告,这个命令会根据项目的配置,生成一个包含项目信息、Javadocs、测试报告等的静态网站。
deploy
双击 IDEA 中 maven 的生命周期中的 site,等价于执行 mvn deploy 命令。作用是将项目构件部署到远程仓库,这个命令会将打包好的文件部署(上传)到远程或私有仓库,供其他团队成员或项目使用。