maven生命周期
1. 生命周期介绍
maven是一个项目构建(build)工具。对于一个项目包含清理、编译、测试、打包、发布包、部署等工作,maven把这些工作抽象成一个项目的生命周期,即mavn的生命周期。可以在不使用maven的情况下,实现项目的清理、编译、测试、打包等项目相关操作,可以更好理解maven功能。参考 java自带项目管理命令 。
Maven提供了三个独立的生命周期clean、default、site:
- clean生命周期:负责清理项目
- default生命周期:负责构建项目
- site生命周期:负责建立项目站点。
2. 生命周期阶段和插件映射
如下:( 可以参考maven官网 插件 http://maven.apache.org/plugins/index.html)
(1)clean
阶段 | 描述 | 绑定插件的目标 |
pre-clean | ||
clean | 清空target目录 | mvn-clean-plugin:clean |
post-clean |
(2)default
阶段 | 描述 | 绑定插件 |
validate | ||
initialize | ||
generate-sources | ||
process-sources | 处理项目的资源文件,把src/main/resources目录下的文件复制输出到classpatch中 | |
process-sources | ||
generate-resources | ||
process-resources | 复制主资源文件至主输出目录 | mvn-resource-plugin:resources |
compile | 编译项目代码,生成class文件放到lclasspath目录 | mvn-compiler-plugin:compile |
process-class | ||
generate-test-sources | ||
process-test-sources | 处理项目的测试资源文件,把src/main/resources目录下的文件复制输出到classpatch中 | |
generate-test-resources | ||
process-test-resources | ||
test | 使用单元测试框架运行测试,测试代码不会被打包或部署。把class放到测试环境的classpath目录 | mvn-surefire-puligin:test |
prepare-package | ||
package | 打包生成jar,放到target目录 | mvn-jar-plugin:jar |
pre-integration-test | ||
integration-test | ||
post-integration-test | ||
verify | ||
install | 发布到本地仓库 | mvn-install-plugin:install |
deploy | 发布到远程仓库 | mvn-deploy-plugin:deploy |
package阶段是 执行打包,并且把依赖的包下载到本地目录,是否maven的依赖都会下载到本地工程目录进行打包?包含三种情况:
- 默认只对项目生成一个jar,没有第三方依赖
- 通过assembly插件生成一个tar.gz,包含 项目jar和第三方jar。
- 将项目class和第三方jar组成一个 jar文件,使用spring-boot-maven-plugin:repackage。
(3)site
阶段 | 描述 | 绑定插件 |
pre-site | ||
sit | 生成项目站点 | |
post-site | ||
sit-deploy | 将生成项目站点发布到服务器 |