Maven拥有三套相互独立的生命周期,它们分别为clean,default,和site。clean生命周期的目的是清理项目,default生命周期的目的是构建项目,而site生命周期的目的是建立项目站点
clean生命周期的目的是清理项目,它包含三个阶段
1)
pre-clean 执行一些清理前需要完成的工作。
2)
clean 清理上一个构建生成的文件。
3)
post-clean 执行一些清理后需要完成的工作。
default生命周期
default生命周期定义了真正构建时所需要执行的所有步骤,它是所有生命周期中最核心的部分,其包含的阶段如下:
validate
initialize
generate-sources
process-sources 处理项目主资源文件。一般来说是对src/main/resources 目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。
generate-resouces
process-resouces
compile 编译项目的主源码。一般来说,是编译src/main/java目录下的Java文件项目输出的主classpath目录中。
process-classes
generate-test-sources
process-test-sources 处理项目测试资源文件。一般来说,是对src/test/resources目录的内容进行变量特换等工作后,复制到项目输出的测试classpath目录中。
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 将最终的包复制到远程仓库,供其他开发人员和maven项目使用。
site生命周期
pre-stie 执行一些在生成项目站点之前需要完成的工作。
site 生成项目站点文档。
post-site 执行一些在生成项目站点之后需要完成的工作。
site-deploy 将生成的项目站点发布到服务器上。
命令行与生命周期
mvn clean :该命令调用clean生命周期clean阶段。实际执行的阶段为clean生命周期的pre-clean和clean阶段
mvn test : 该命令调用default生命周期的test阶段.实际执行的阶段为defualt生命周期的validate、initialze等,直到test的所有阶段。
mvn clean install : 该命令调用clean生命周期clean阶段和default生命周期的install阶段。实际执行的阶段为clean生命周期的pre-clean、clean阶段,以及defualt生命周期的从validate至install所有阶段。该命令结合两个生命周期,在执行真正的项目构建之前清理项目是一个很好的实践。
mvn clean deploy site-deploy : 该命令调用clean生命周期的clean阶段、default生命周期的deploy阶段、以及site生命周期的site-deploy阶段实际执行的阶段为clean生命周期
pre-clean、clean阶段,defualt生命的所有阶段,以及site生命周期的所有阶段。该命令结合了Manven所有三个生命周期,且deploy为defualt生命周期的最后一个阶段,site-deploy为site生命周期的最后一个阶段。