maven包含三套生命周期:clean、default、site。
clean生命周期的目的是项目清理,主要表现为删除target文件夹,包含三个阶段:pre-clean、clean以及post-clean。
default生命周期的目的是项目构建,下图以表格的形式描述该生命周期内各个阶段:
命令 | 作用 | 备注 |
---|---|---|
process-resources | 处理项目主资源文件 | 一般来说,是对src/main/resources目录的内容进行变量替换等工作后,复制到target/classes目录中 |
compile | 编译项目的主源码 | 一般来说,是将src/main/java目录下的java文件编译成class文件后,复制到target/classes目录中 |
process-test-resources | 处理项目测试资源文件 | 一般来说,是对src/test/resources目录的内容进行变量替换等工作后,复制到target/test-classes目录中 |
test-compile | 编译项目的测试代码 | 一般来说,是将src/test/java目录下的java文件编译成class文件后,复制到target/test-classes目录中 |
test | 执行单元测试 | 测试代码不会被打包或部署 |
package | 打包 | 一般来说,打出的包会保存到target/目录下 |
install | 将打出来的包安装到本地仓库 | |
deploy | 将打出来的包发布到远程仓库 |
site生命周期不常用,本文暂不涉及。
注:
1.执行后面的阶段,会执行完同生命周期前面的全部阶段。比如执行mvn pakcage,则会先执行compile、test,然后才会执行package。
2.三套生命周期之间则是相互独立的,比如执行install的时候,不会包含clean。如果想要先清理再打包,则需要执行 mvn clean package。