Maven三大生命周期为clean(清理)、default(核心构建)和site(生成文档),其中default包含validate→compile→test→package→verify→install→deploy等阶段,执行mvn package会自动运行此前所有绑定插件的阶段。

在 Java 项目中,Maven 通过生命周期(Lifecycle)统一管理构建流程,核心命令围绕 clean、compile、test、package、install、deploy 等阶段展开。理解生命周期结构和常用命令组合,是高效使用 Maven 的基础。
三大内置生命周期及其作用
Maven 定义了三个相互独立的生命周期:default(核心构建)、clean(清理)、site(生成项目文档)。日常开发主要使用前两个:
-
clean 生命周期:仅含
pre-clean、clean、post-clean三个阶段,执行mvn clean会删除target/目录,清空上一次构建产物。 -
default 生命周期:最常用,包含 20+ 阶段(如
validate→compile→test→package→verify→install→deploy),但不会自动执行前面的阶段——Maven 只运行目标阶段及之前所有绑定过插件的阶段。
核心编译与打包命令详解
以下命令按典型使用顺序排列,每个都对应 default 生命周期中的一个或多个阶段:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
mvn compile:执行到compile阶段,编译src/main/java/下的源码,输出至target/classes/;不运行测试,也不打包。 -
mvn test:执行到test阶段,先编译主代码和测试代码(src/test/java/),再运行测试用例;结果存于target/surefire-reports/。 -
mvn package:执行到package阶段,完成编译、测试后,按pom.xml中<packaging>值(默认jar)生成可分发包(如xxx-1.0.0.jar),位于target/目录。 -
mvn install:执行到install阶段,在package基础上,将构建产物安装到本地仓库(~/.m2/repository/),供其他本地项目依赖。 -
mvn deploy:执行到deploy阶段,将包发布到远程仓库(需在pom.xml或settings.xml中配置<distributionsManagement>)。
组合命令与跳过环节技巧
实际开发中常组合使用或跳过耗时环节:
立即学习“Java免费学习笔记(深入)”;
- 快速验证编译:用
mvn compile -Dmaven.test.skip=true跳过测试编译与执行(注意:此参数不编译测试代码)。 - 跳过测试执行(仍编译测试类):用
mvn package -DskipTests,适合已确认测试无误时加速打包。 - 完整构建并安装:直接运行
mvn clean install,等价于先清理再执行 install 阶段(即 clean → compile → test → package → install)。 - 指定 profile 构建:如
mvn package -Pprod,激活 ID 为prod的 profile,用于多环境差异化打包。
常见误区与注意事项
初学者易混淆概念,需特别注意:
-
mvn compile不等于javac:它调用maven-compiler-plugin,受<source>和<target>版本控制,与 JDK 实际版本可能不一致。 - 生命周期阶段本身不干活,真正执行的是绑定到该阶段的插件目标(如
compiler:compile绑定在compile阶段)。 - 执行
mvn package时若测试失败,默认中断构建;可通过-fn(fail-never)参数让 Maven 忽略测试失败继续执行(慎用)。 - 自定义生命周期需继承或扩展,普通项目无需修改,但可通过
<plugin>配置调整插件绑定阶段。

















