Welcome everyone

maven生命周期

java 汪明鑫 675浏览 0评论

生命周期 lifecycle

Maven生命周期就是为了对所有的构建过程进行抽象和统一,开发了一套高度完善的、易扩展的生命周期。

这个生命周期包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建步骤。

几乎所有项目的构建,都能映射到这样一个生命周期上。

 

1.A Build Lifecycle is Made Up of Phases
2.A Build Phase is Made Up of Plugin Goals
goal我们在下一篇再引入

 

maven的三大生命周期,每个生命周期下又有phase阶段

  • clean

pre-clean:执行清理前需要完成的工作

clean:清理上一次构建生成的文件

post-clean:执行清理后需要完成的工作

 

  • default【核心】
生命周期阶段 描述
validate(校验) 校验项目是否正确并且所有必要的信息可以完成项目的构建过程。
initialize(初始化) 初始化构建状态,比如设置属性值。
generate-sources(生成源代码) 生成包含在编译阶段中的任何源代码。
process-sources(处理源代码) 处理源代码,比如说,过滤任意值。
generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件。
process-resources (处理资源文件) 复制和处理资源到目标目录,为打包阶段最好准备。
compile(编译) 编译项目的源代码。
process-classes(处理类文件) 处理编译生成的文件,比如说对Java class文件做字节码改善优化。
generate-test-sources(生成测试源代码) 生成包含在编译阶段中的任何测试源代码。
process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值。
generate-test-resources(生成测试资源文件) 为测试创建资源文件。
process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录。
test-compile(编译测试源码) 编译测试源代码到测试目标目录.
process-test-classes(处理测试类文件) 处理测试源码编译生成的文件。
test(测试) 使用合适的单元测试框架运行测试(Juint是其中之一)。
prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包做准备。
package(打包) 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。
pre-integration-test(集成测试前) 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。
integration-test(集成测试) 处理和部署项目到可以运行集成测试环境中。
post-integration-test(集成测试后) 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。
verify (验证) 运行任意的检查来验证项目包有效且达到质量标准。
install(安装) 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。
deploy(部署) 将最终的项目包复制到远程仓库中与其他开发者和项目共享。

 

  • site

pre-site:执行一些需要在生成站点文档之前完成的工作

site:生成项目的站点文档

post-site: 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备

site-deploy:将生成的站点文档部署到特定的服务器上

 

 

注:执行一个phase,maven会把前面的phase也执行一遍

 

 

 

常用命令

常用命令【phase】

 

  • compile 大部分是自动build
  • clean    清空target/
  • test       test case
  • package 打包
  • install    把项目包install到本地maven仓库
  • deploy    本地jar发布到remote [私服]

 

一般都是这样使用:

mvn clean test

mvn clean package

mvn clean install

mvn clean deploy

 

【神器】查看依赖树

mvn dependency:tree>tree.txt

查看jar包间的依赖

如果发现某个jar包,自己的pom中并没有定义,想看一下是被哪个jar包间接引用的

也可以查看jar包依赖冲突

 

 

补充资料

 

https://www.cnblogs.com/ptqueen/p/7985198.html

 

https://www.cnblogs.com/best/p/9676515.html

 

下一篇整理maven插件!

 

转载请注明:汪明鑫的个人博客 » maven生命周期

喜欢 (0)

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz