Maven生命周期

资料:

  • http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

Maven生命周期

三套生命周期

Maven定义了三套生命周期:clean、default、site,每个生命周期都包含了一些阶段(phase)。
三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase。
执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase。

  • Clean Lifecycle
    构建之前处理一些清理动作
  • Default Lifecycle
    核心构建过程,包括编译、测试、打包、部署等
  • Site Lifecycle
    站点信息、项目报告等内容生成

注意:执行某个阶段时,该阶段之前的阶段都会执行,例如执行mvn deploy时default生命周期内的所有阶段都会执行

1. clean生命周期

phasedesc
pre-clean在实际项目清理之前执行所需的流程
clean删除先前构建生成的所有文件
post-clean执行完成项目清理所需的流程

mvn clean 等价于mvn pre-clean clean

2. default生命周期

default生命周期是最核心的,它包含了构建项目时真正需要执行的所有步骤。

phasedesc
validate验证项目是否正确并且所有必要的信息都可用
initialize初始化构建状态,例如设置属性或创建目录
generate-sources生成包含在编译中的任何源代码
process-sources处理源代码,例如过滤任何值
generate-resources生成包含在包中的资源
process-resources将资源复制并处理到目标目录中,准备打包
compile编译项目的源代码
process-classes对编译生成的文件进行后处理,例如对 Java 类进行字节码增强
generate-test-sources生成任何测试源代码以包含在编译中
process-test-sources处理测试源代码,例如过滤任何值
generate-test-resources创建用于测试的资源
process-test-resources将资源复制并处理到测试目标目录中
test-compile将测试源代码编译到测试目标目录中
process-test-classes对测试编译生成的文件进行后处理,例如对 Java 类进行字节码增强
test使用合适的单元测试框架运行测试。这些测试不应该要求打包或部署代码
prepare-package在实际包装之前执行准备包装所需的任何操作。这通常会导致包的解包、处理版本
package获取编译后的代码并将其打包为可分发的格式,例如 JAR
pre-integration-test在执行集成测试之前执行所需的操作。这可能涉及诸如设置所需环境之类的事情
integration-test如有必要,处理并部署包到可以运行集成测试的环境中
post-integration-test执行集成测试后执行所需的操作。这可能包括清理环境
verify运行任何检查以验证包是否有效并符合质量标准
install将包安装到本地存储库中,用作本地其他项目的依赖项
deploy在集成或发布环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享

3. site生命周期

phasedesc
pre-site在实际项目现场生成之前执行所需的流程
site生成项目的站点文档
post-site执行完成站点生成和准备站点部署所需的流程
site-deploy将生成的站点文档部署到指定的 Web 服务器

内置生命周期绑定

默认情况下,某些阶段具有与其绑定的目标。对于默认生命周期,这些绑定取决于打包值。以下是一些目标(goal)到构建阶段(phase)的绑定。

清理生命周期绑定

阶段插件:目标
cleanclean:clean

默认生命周期绑定 - ejb/ ejb3/ jar/ par/ rar/war

阶段插件:目标
process-resourcesresources:resources
compilecompiler:compile
process-test-resourcesresources:testResources
test-compilecompiler:testCompile
testsurefire:test
packageejb:ejb 或 ejb3:ejb3 或 jar:jar 或 par:par 或 rar:rar 或 war:war
installinstall:install
deploydeploy:deploy

默认生命周期绑定 - ear

阶段插件:目标
generate-resourcesear:generate-application-xml
process-resourcesresources:resources
packageear:ear
installinstall:install
deploydeploy:deploy

默认生命周期绑定 - maven-plugin

阶段插件:目标
generate-resourcesplugin:descriptor
process-resourcesresources:resources
compilecompiler:compile
process-test-resourcesresources:testResources
test-compilecompiler:testCompile
testsurefire:test
packagejar:jar 和 plugin:addPluginArtifactMetadata
installinstall:install
deploydeploy:deploy

默认生命周期绑定 - pom

阶段插件:目标
package
installinstall:install
deploydeploy:deploy

站点生命周期绑定

阶段插件:目标
sitesite:site
site-deploysite:deploy
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值