一、maven三个标准的生命周期
- clean:项目的清理
- default:项目的部署
- site:站点文档的创建
注:maven的生命周期都是按顺序执行的。
1、clean生命周期
clean主要包含三个阶段:①pre-clean:执行clean之前需要完成的工作;②clean:清除已构建的文件;③post-clean:执行clean之后需要立刻完成的工作。
注:执行 mvn post-clean时,它之前的pre-clean clean阶段也会被执行,也就是说在一个生命周期中,运行某个阶段的时候,它之前的所有阶段及当前阶段都会被运行。
2、default生命周期
default是maven的主要生命周期,用于项目的构建,主要包括23个阶段:
生命周期阶段 | 描述 |
---|---|
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(测试) | 使用合适的单元测试框架运行测试(Juint是其中之一)。 |
prepare-package(准备打包) | 在实际打包之前,执行任何的必要的操作为打包做准备。 |
package(打包) | 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。 |
pre-integration-test(集成测试前) | 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。 |
integration-test(集成测试) | 处理和部署项目到可以运行集成测试环境中。 |
post-integration-test(集成测试后) | 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。 |
verify (验证) | 运行任意的检查来验证项目包有效且达到质量标准。 |
install(安装) | 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。 |
deploy(部署) | 将最终的项目包复制到远程仓库中与其他开发者和项目共享。 |
本地执行mvn install时,按顺序执行了install之前的所有阶段,并将项目构建至本地仓库;执行deploy时,部署项目至共享仓库中。(下一章节将会整理仓库的相关概念)
3、site生命周期
site主要用来创建新的文档、部署站点等操作:①pre-site:执行在生成站点前需要完成的工作;②site:生成项目的站点文档;③post-site:执行在站点文档生成后需要完成的工作,为部署做准备;④site-deploy:将站点文档部署只服务器上。