一、生命周期概述
maven的生命周期包括项目的清理,初始化,编译,测试,打包,集成测试,验证,部署和站点生成等几乎所有构建步骤。几乎所有项目的构建都能隐射到一个生命周期上。
maven的生命周期是抽象的,生命周期不做任何工作,都是根据maven插件来完成。
maven拥有三套相互独立的生命周期,clean、default、site。clean的目的是清理,default生命周期的目的是构建项目,site生命周期的目的是建立项目站点。
二、三套生命周期
1、clean生命周期
pre-clean:执行一些清理前需要完成的工作;
clean:清理上一次构建生成的文件;
post-clean:执行一些清理后需要完成的工作。
2、default生命周期
default生命周期定义了真正构建时所需要执行的所有步骤,是生命周期中最核心的部分,主要步骤有:
validate
initialize
generate-sources
process-sources:处理项目主要资源文件,复制src/main/resouces到项目的主classpath目录
generate-resources
process-resources
compile:编译项目的主源码,编译src/main/java目录下的 java文件至项目的主classpath目录
process-classes
generate-test-sources
process-test-sources:处理项目测试资源文件
generate-test-resources
process-test-resources
test-compile:编译项目的测试代码,编译项目src/test/java下的java文件到项目输出的classpath目录
process-test-class
test:使用单元测试框架运行测试,测试代码不会被打包或部署
prepare-package
package:接受编译好的代码,打包成可发布的格式,jar或者war
pre-integration-test
integration-test
post-integration-test
verify
install:将包安装到maven本地仓库,供本地其他maven项目使用
deploy:将包复制到远程仓库,供其他开发人员使用
3、site生命周期
pre-site:执行一些在生成项目站点之前需要完成的工作
site:生成项目站点文档
post-site:执行一些在生成项目站点之后需要完成的工作
site-deploy:将生成的项目站点发布到服务器上
4、常用命令行
- $mvn clean:该命令调用clean生命周期的clean阶段,实际执行的是clean生命周期的pre-clean和clean阶段
- $mvn test:调用default生命周期的test阶段,实际执行的是default阶段直到test的所有阶段。
- $mvn clean install:调用clean生命周期的clean阶段和default生命周期的install阶段
- $mvn clean deploy site-deploy:调用clean生命周期的clean阶段、default生命周期的deploy阶段以及site生命周期的site-deploy阶段。