Maven的生命周期不是一个总体,而是 三套 相互独立的生命周期,分别是 clean,default,site 。每一个生命周期都有各自不一样的生命阶段,能够单独执行一个生命周期的某个阶段,在执行时,今生命周期该阶段的其余阶段也依赖执行。java
clean生命周期:目的清理项目bash
阶段 | 含义 |
---|---|
pre-clean | 执行一些清理前须要完成的工做 |
clean | 清理上一次构件生成的文件 |
post-clean | 执行一些清理后须要完成的工做 |
default生命周期:定义真正构建所须要指向的全部步骤,是最核心的部分服务器
阶段 | 含义 |
---|---|
validate | 验证工程是否正确,全部须要的资源是否可用。 |
initialize | |
generate-sources | |
process-sources | 处理项目主资源文件。通常来讲是对 src/main/resources框架 目录的内容进行变量替换工做后复制到项目输出的主classpath的目录中post |
generate-resources | |
process-resources | |
compile | 编译项目的主源码。通常来讲是编译 src/main/java 目录下的java单元测试 文件到项目输出的主classpath的目录中测试 |
process-classes | |
generate-test-sourcesspa |
|
process-test-sources命令行 |
处理项目测试的资源文件 通常来讲是对 src/test/resources 目录的内容进行变量替换工做后复制到项目输出的测试classpath的目录中code |
generate-test-resources |
|
process-test-resources |
|
test-compile | 编译项目测试的代码。通常来讲是编译 src/test/java 目录下的java 文件到项目输出测试的classpath的目录中 |
process-test-classes | |
test | 使用单元测试框架的运行测试,测试代码不会被打包或者部署 |
prepare-package | |
package | 接受编译好的代码,打包成可发布的格式,如JAR |
pre-integration-test | |
integration-test | 若有须要,将包处理和发布到一个可以进行集成测试的环境 |
post-integration-test | |
verify | 运行全部检查,验证包是否有效且达到质量标准。 |
install | 将包安装到Maven本地仓库,供本地其余项目使用 |
deploy | 将最终的包复制到远程仓库,供其余开发人员和Maven项目使用 |
site 生命周期:创建和发布项目站点,Maven可以基于pom所包含的信息,自动生成一个友好的站点。
阶段 | 含义 |
---|---|
pre-site | 执行一些在生成站点以前须要完成的工做 |
site | 生成项目站点文档 |
post-site | 执行一些在生成站点以后须要完成的工做 |
site-deploy | 将生成的项目站点发布到服务器上 |
命令和生命周期
从命令行执行Maven任务的主要方式就是调用 Maven的生命周期阶段。各个生命周期相互独立,而一个生命周期的阶段有先后依赖关系。
经常使用命令
mvn clean #清理 mvn test #测试 mvn clean install #发布到本地仓库 mvn clean depoly site-depoly #发布到远程仓库