Maven生命周期

介绍

对于构建项目的人来说,只需要学习一组命令就可以构建任何Maven项目,而 POM 将确保他们获得所需的结果。

每一个构建项目的命令都对应了maven底层的一个插件。

学习maven的生命周期可以帮助加深对maven的理解,以便更好的使用maven和解决使用过程中遇到的问题。

有三个内置的构建生命周期: default, cleansite

  • default 生命周期处理项目部署
  • clean 生命周期处理项目清理
  • site 生命周期处理项目站点文档的创建

构建生命周期的不同阶段

实际上常用到的生命周期,基本都属于 Default 生命周期

阶段 描述
validate 确认项目是正确的,所有必要的信息都是可用的
compile 编译
test 测试
package 打包
verify 验证,对集成测试的结果进行任何检查,以确保满足质量标准
install 将包安装到本地存储库中,作为本地其他项目中的依赖项使用
deploy 发布

完整的生命周期

Clean 生命周期

Clean 生命周期在日常开发中,也会用到,但远不如 Default 生命周期频繁,例如迁移项目后,一般都需要清理一下,但从名字也能看出来,也仅限于清理。

阶段 描述
pre-clean 预清理:在实际项目清理之前执行所需的过程
clean 清理:删除以前生成的所有文件
post-clean 后清理:执行完成项目清理工作所需的流程

Default 生命周期

Default 生命周期在实际开发中是最常用的生命周期

阶段 描述
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 对测试编译生成的文件进行后处理,参考process-classes
test 测试
prepare-package 预打包:在包装前进行任何必要的准备工作
package 打包:将编译后的代码打包成可分发的格式,例如JAR包
pre-integration-test 预集成测试:在执行集成测试之前执行所需的操作
integration-test 集成测试:处理和部署到可以运行集成测试的环境中
post-integration-test 后集成测试:执行集成测试后所需的操作
verify 验证:运行任何检查来验证包是否有效并满足标准
install 安装:将包安装到本地存储库中,作为本地其他项目中的依赖项使用
deploy 打包:将最终的包复制到远程存储库,以便与其他开发人员和项目共享

Site 生命周期

实际上在日常开发中, Site 生命周期使用的并不多。

阶段 描述
pre-site 在实际项目站点生成之前执行所需的过程
site 生成项目的站点文档
post-site 执行完成站点生成和准备站点部署所需的流程
site-deploy 将生成的站点文档部署到指定的web服务器

参考:

https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • 什么是生命周期?在Maven出现之前,项目构建的生命周期就已经存在,软件开发人员每天都在对项目进行清理、编译、测试...
    yust5273阅读 253评论 0 0
  • 何为生命周期 在 Maven 出现之前,项目构建的生命周期就已经存在。软件开发人员每天都在对项目进行清理、编译、测...
    杰哥长得帅阅读 273评论 0 2
  • 概述Maven出现以前,项目构建的生命周期就已经存在了。软件开发人员每天都在对项目进行清理、编译、测试及部署,而且...
    SonyaBaby阅读 928评论 0 0
  • Maven 生命周期 Maven 生命周期是为了对所有的构建过程进行抽象和统一,开发了一套高度完善的、易扩展的生命...
    聪明的奇瑞阅读 512评论 0 1
  • 转载 我们在开发项目的时候,不断地在编译、测试、打包、部署等过程,maven的生命周期就是对所有构建过程抽象与统一...
    ifeelok0319阅读 145评论 0 0