Maven速查手册 - 生命周期

生命周期

Maven包含三个相互独立的生命周期,它们分别是:

  • Clean Lifecycle:在进行真正的构建之前进行一些清理工作

  • Default Lifecycle:构建的核心部分,编译、测试、打包、部署

  • Site Lifecycle:生成项目报告、生成站点、发布站点

Clean 生命周期
生命周期阶段 描述
pre-clean 执行实际项目清理前所需的流程
clean 删除以前版本生成的所有文件
post-clean 执行完成项目清理所需的过程
默认生命周期
生命周期阶段 描述
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 使用适当的单元测试框架(例如JUnit)运行测试
prepare-package 在真正打包之前,为准备打包执行任何必要的操作(Maven 2.1及以上)
package 获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文件
pre-integration-test 在集成测试执行之前执行所需的操作,这可能涉及诸如设置所需环境等事情
integration-test 处理和部署必须的工程包到集成测试能够运行的环境中
post-integration-test 在集成测试被执行后执行必要的操作,例如,清理环境
verify 运行任何检查来验证包是否有效并且符合质量标准
install 安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖
deploy 在集成或发行版环境中完成,将最终包复制到远程存储库,以便与其他开发人员和项目共享
Site 生命周期
生命周期阶段 描述
pre-site 执行实际项目站点生成之前所需的流程
site 生成项目的网站文档
post-site 执行完成网站生成所需的流程,并为网站部署做好准备
site-deploy 将生成的网站文档部署到指定的Web服务器

内置生命周期绑定

      每个生命周期包含了一些有序的阶段(phase),每个phase都是抽象的,实际需要插件来完成,在实际过程中通过插件目标(goal)绑定到生命周期具体阶段(phase)来完成,以下是一些目(goal)到构建阶段(phase)的绑定:

Clean 生命周期绑定
生命周期阶段 绑定目标
clean clean:clean
默认生命周期绑定 -Packaging ejb/ejb3/jar/rar/war
生命周期阶段 绑定目标
process-resources resources:resources
compile compiler:compile
process-test-resources resources:testResources
test-compile compiler:testCompile
test surefire:test
package ejb:ejb or ejb3:ejb3 or jar:jar or par:par or rar:rar or war:war
install install:install
deploy deploy:deploy
默认生命周期绑定 -Packaging ear
生命周期阶段 绑定目标
generate-resources ear:generate-application-xm
process-resources resources:resources
package ear:ear
install install:install
deploy deploy:deployt
默认生命周期绑定 -Packaging maven-plugin
生命周期阶段 绑定目标
generate-resources plugin:descriptor
process-resources resources:resources
compile compiler:compile
process-test-resources resources:testResources
test-compile compiler:testCompile
test surefire:test
package jar:jar and plugin:addPluginArtifactMetadata
install install:install
deploy deploy:deployt
默认生命周期绑定 -Packaging pom
生命周期阶段 绑定目标
package site:attach-descriptor
install install:install
deploy deploy:deployt
Site生命周期绑定
生命周期阶段 绑定目标
site site:site
site-deploy site:deploy
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 所有项目的构建都是有生命周期的,这个生命周期包括:项目清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生...
    zlcook阅读 3,096评论 0赞 21
  • 当前,JVM生态圈主要的三大构建工具: Apache Ant(带着Ivy) Maven Gradle 对于刚开始接...
    清枫_小天阅读 6,029评论 1赞 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,268评论 19赞 139
  • 1. Maven 构建生命周期 Maven 构建生命周期就是 Maven 将一个整体任务划分为一个个的阶段,类似于...
    data4阅读 31,476评论 3赞 35
  • 什么是构建生命周期 Maven的构建过程被分解为构建生命周期、阶段和目标。一个构建周期由一系列的构建阶段组成,每一...
    欧余山南阅读 972评论 0赞 0

友情链接更多精彩内容