Maven的3个生命周期:
Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。
Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法。
每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。
-
clean生命周期:清理项目,phase如下。
-
pre-clean
:执行清理前需要完成的工作 -
clean
:清理上一次构建生成的文件 -
post-clean
:执行清理后需要完成的工作
-
-
default生命周期:构建项目,phase如下。
-
validate
:验证工程是否正确,所有需要的资源是否可用。 -
initialize
:初始化 -
generate-sources
: -
process-sources
:处理资源文件 【src/main/resources】 -
generate-resources
: -
process-resources
: -
compile
:编译项目的源代码。【src/main/java】 -
process-classes
:处理编译后的class文件 -
generate-test-sources
: -
process-test-sources
:处理测试资源文件【src/test/resources】 -
generate-test-resources
: -
process-test-resources
: -
test-compile
:编译测试文件【src/test/java】 -
process-test-classes
:处理编译后的测试class文件 -
test
:使用单元测试框架来测试已编译的源代码。测试代码不会被打包或布署。 -
pre-package
:打包之前要做的准备工作 -
package
:把已编译的代码打包成可发布的格式,比如jar。 -
pre-integration-test
: -
integration-test
:如有需要,将包处理和发布到一个能够进行集成测试的环境。 -
post-integration-test
: -
verify
:运行所有检查,验证包是否有效且达到质量标准。 -
install
:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。 -
deploy
:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
-
-
site生命周期:建立和发布项目站点,phase如下。
-
pre-site
:生成项目站点之前需要完成的工作 -
site
:生成项目站点文档 -
post-site
:生成项目站点之后需要完成的工作 -
site-deploy
:将项目站点发布到服务器
-
命令行与生命周期
-
mvn clean
:调用clean生命周期的clean阶段,实际执行pre-clean和clean阶段。 -
mvn test
:调用default生命周期的test阶段,实际执行test以及之前所有阶段。 -
mvn clean install
:调用clean生命周期的clean阶段和default的install阶段,实际执行pre-clean和clean,install以及之前所有阶段。 -
mvn clean deploy site-deploy
:调用clean生命周期的clean阶段,default生命周期的deploy阶段和site生命周期的site-deploy阶段。