Maven 生命周期
| 阶段 |
处理 |
描述 |
| clean |
清除 |
清理项目 |
| validate |
验证项目 |
验证项目是否正确且所有必须信息是可用的 |
| compile |
执行编译 |
源代码编译在此阶段完成 |
| Test |
测试 |
使用适当的单元测试框架(例如JUnit)运行测试。 |
| package |
打包 |
创建JAR/WAR包如在 pom.xml 中定义提及的包 |
| verify |
检查 |
对集成测试的结果进行检查,以保证质量达标 |
| install |
安装 |
安装打包的项目到本地仓库,以供其他项目使用 |
| site |
建立 |
生成项目站点文档 |
| deploy |
部署 |
拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
详解
- maven包含三套**
相互独立**的生命周期。
clean生命周期:用于清理项目。
default生命周期:用于构建项目。
site生命周期:用于建立项目站点。
Clean 生命周期
clean生命周期的目的是清理项目,它包含3个阶段:
| clean生命周期阶段 |
说明 |
| pre-clean |
执行一些clean前需要完成的工作 |
clean |
清理上一次构建生成的文件 |
| post-clean |
执行一些clean后需要完成的工作 |
default生命周期
default生命周期的目的是构建项目,它定义了真正构建时所需要完成的所有步骤,是所有生命周期中最核心的部分。
包含23个阶段:详细介绍
| default生命周期阶段 |
说明 |
| validate |
验证项目是否正确并且所有必要信息都可用 |
| initialize |
初始化构建状态,比如设置属性值、创建目录 |
| generate-sources |
生成包含在编译阶段中的任何源代码 |
| process-sources |
处理源代码,比如说,过滤任意值 |
| generate-resources |
生成将会包含在项目包中的资源文件 |
| process-resources |
复制和处理资源到目标目录,为打包阶段最好准备 |
compile |
编译项目的源代码 |
| process-classes |
处理编译生成的文件,比如说对Java class文件做字节码改善优化 |
| generate-test-sources |
生成包含在编译阶段中的任何测试源代码 |
| process-test-sources |
处理测试源代码,比如说,过滤任意值 |
| generate-test-resources |
为测试创建资源文件 |
| process-test-resources |
复制和处理测试资源到目标目录 |
| test-compile |
编译测试源代码到测试目标目录 |
| process-test-classes |
处理测试源码编译生成的文件 |
test |
使用合适的单元测试框架运行测试 , 测试代码不会被打包或部署 |
| prepare-package |
在实际打包之前,执行任何的必要的操作为打包做准备 |
package |
将编译后的代码打包成可分发的格式,比如JAR |
| pre-integration-test |
在执行集成测试前进行必要的动作。比如说,搭建需要的环境 |
| integration-test |
如有必要,将程序包处理并部署到可以运行集成测试的环境中 |
| post-integration-test |
执行集成测试完成后进行必要的动作。比如说,清理集成测试环境 |
| verify |
运行任何检查以验证包是否有效并符合质量标准 |
install |
安装项目包到maven本地仓库,供本地其他maven项目使用 |
deploy |
将最终包复制到远程仓库,供其他开发人员和maven项目使用 |
site生命周期
site生命周期的目的是建立和发布项目站点。Maven能够基于pom.xml所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。
包含以下4个阶段:
| site生命周期阶段 |
说明 |
| pre-site |
执行一些在生成项目站点之前需要完成的工作 |
| site |
生成项目站点文档 |
| post-site |
执行一些在生成项目站点之后需要完成的工作 |
| site-deploy |
将生成的项目站点发布到服务器上 |