maven生命周期

1. 生命周期介绍

maven是一个项目构建(build)工具。对于一个项目包含清理、编译、测试、打包、发布包、部署等工作,maven把这些工作抽象成一个项目的生命周期,即mavn的生命周期。可以在不使用maven的情况下,实现项目的清理、编译、测试、打包等项目相关操作,可以更好理解maven功能。参考 java自带项目管理命令 。

Maven提供了三个独立的生命周期clean、default、site:

  • clean生命周期:负责清理项目
  • default生命周期:负责构建项目
  • site生命周期:负责建立项目站点。

38173473

 

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将生成项目站点发布到服务器 

 

posted @ 2022-11-28 18:12  車輪の唄  阅读(27)  评论(0编辑  收藏  举报  来源