Maven 生命周期与阶段总结
Maven 共有三个主要生命周期,每个生命周期由多个阶段组成。以下是每个生命周期和其阶段的详细描述。
生命周期 | 阶段 | 描述 |
---|---|---|
默认生命周期 | validate |
验证项目是否正确且所有必要信息是否可用。 |
initialize |
初始化构建状态,设置一些属性。 | |
generate-sources |
生成项目需要的源码(如果有相应插件)。 | |
process-sources |
处理项目主源码。 | |
generate-resources |
生成项目所需的资源文件。 | |
process-resources |
复制和处理资源文件至目标目录。 | |
compile |
编译主源码。 | |
process-classes |
处理编译后的类文件(如字节码增强)。 | |
generate-test-sources |
生成测试源码。 | |
process-test-sources |
处理测试源码。 | |
generate-test-resources |
生成测试资源文件。 | |
process-test-resources |
复制和处理测试资源文件至目标目录。 | |
test-compile |
编译测试代码。 | |
test |
运行测试代码。 | |
prepare-package |
执行打包前的准备工作。 | |
package |
将编译后的代码打包为可分发格式(如 JAR、WAR 文件)。 | |
pre-integration-test |
集成测试前执行的准备工作。 | |
integration-test |
处理并执行集成测试。 | |
post-integration-test |
集成测试完成后执行的操作。 | |
verify |
运行所有检查,确保项目符合质量标准。 | |
install |
将打包的工件安装到本地仓库中。 | |
deploy |
将项目部署到远程仓库中。 | |
清理生命周期 | pre-clean |
清理前的准备工作。 |
clean |
删除之前生成的构建文件(如目标目录中的文件)。 | |
post-clean |
清理完成后的操作。 | |
站点生命周期 | pre-site |
站点生成前的准备工作。 |
site |
生成项目的站点文档。 | |
post-site |
站点生成后的操作。 | |
site-deploy |
将生成的站点发布到服务器。 |
Maven 生命周期与父子模块插件执行控制
Maven 依赖于生命周期来执行构建任务,父模块和子模块会共享相同的生命周期,但通过适当的配置,可以避免子模块执行父模块的插件操作。
解决方案:通过插件的 skip
参数控制子模块跳过执行
使用插件的 skip
参数,可以让子模块不执行特定插件。例如,对于 maven-antrun-plugin
或 maven-resources-plugin
,你可以在子模块的 pom.xml
中显式设置 skip
为 true
。
通过插件 skip
参数避免子模块执行
以下是一个完整的配置示例:
父模块 pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<group