大数据开发怎么学?Maven生命周期
在昨天的文章中,我们了解了一些关于Maven的基础知识,距离大数据开发的基础构建又进了一步。本期我们依然学习Maven的相关知识,带来的是maven的生命周期的一些基础知识。下面就开始今天的学习。
一、maven生命周期
Maven为什么如此强大以至于成为大数据开发的必修课?其中的一个重要的原因就是因为它有一个十分完善的生命周期模型(lifecycle)。这个生命周期可以从两方面来理解,第一:顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我们使用Maven变得简单,相比而言,Ant的每个步骤都要你手工去定义。第二:这个模型是一种标准,在不同的项目中,使用Maven的接口是一样的,这样就不用去仔细理解每个项目的构建了,一般情况下,mvn clean install 这样的命令是通用的。我想,一定是吸收了许多项目的经验,Maven才能定义出如此完善的模型。
二、Maven的套三
Maven拥有三套相互独立的生命周期,这里需要注意一下:"三套","相互独立"这两个词需要好好看清楚,初学者容易将Maven的生命周期看成一个整体,其实不然,Maven的生命周期是由三个独立的生命周期组成的。
这三套生命周期分别是:
(1)Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
Clean 生命周期在日常开发中,也会用到,但远不如 Default 生命周期频繁,例如迁移项目后,一般都需要清理一下,但从名字也能看出来,也仅限于清理。
阶段描述:
pre-clean 预清理:在实际项目清理之前执行所需的过程
clean 清理:删除以前生成的所有文件
post-clean 后清理:执行完成项目清理工作所需的流程
(2)Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
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 打包:将最终的包复制到远程存储库,以便与其他开发人员和项目共享
(3)Site Lifecycle 生成项目报告,站点,发布站点。
阶段描述:
pre-site在实际项目站点生成之前执行所需的过程
site生成项目的站点文档
post-site执行完成站点生成和准备站点部署所需的流程
site-deploy将生成的站点文档部署到指定的web服务器
再次强调下:它们都是相互独立的,你可以仅仅只能调用clean来清理工作目录或调用site来生成站点,当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。
三、生命周期与插件的关系
生命周期的阶段(phase)组成了项目的完整过程,但这些过程具体由谁来实现呢?这就是插件,maven的核心代码量其实很少。因为它的大部分实现都是由插件来完成的。比如:test阶段就是由maven-surefire-plugin实现。在pom.xml中我们可以设置指定插件目标(goal)与阶段绑定,当项目构建到达指定phase(阶段)时,就会触发这些插件目标的执行。一个插件有时候会实现多个阶段。例如maven-compiler-plugin插件分别实现了compile和testCompile。
总结如下:
1、生命周期的阶段可以绑定具体的插件及目标
2、不同配置下同一个阶段可以对应多个插件和目标
3、phase==>plugin==>goal(目标)
以上就是本期Maven生命周期的所内容了,本期最值得注意的就是maven生命周期是由三个相互独立的生命周期组成的,要发挥各自的用处,不要用错了。
希望大家点个关注,及时收取最新文章推送,想了解更多敬请咨询加米谷大数据。
有问题的欢迎在评论区留言,如有侵权请告知。
建厂狂魔张汝京,从创办中芯再到芯恩,又首次投身国产新赛道文互联鱼关注中国科技发展的朋友们都知道,张汝京博士跟张忠谋一样,此前在德州仪器公司工作,德州仪器当时是最大的半导体制造厂商。因此,饱含二十年资深经验的张汝京,随后投身到晶圆代工的创
11万员工的字节跳动如何做绩效管理?字节跳动是如何给来自全球三十多个国家的11万员工打绩效的?仅从2017年至今,这家公司的员工数便从几千人迅速增长至11万人。可以预见的是,如果没有好的绩效评价体系,那么管理能力的规
蚂蚁消金引入国资马师傅说对钱已不感兴趣,其实想想是可以理解的,也许不只是一句调侃之话。最近马师傅也是处于风口浪尖上,尽是讽刺调侃甚至谩骂之声。时代成就了马云,关键是就成就了他一个。时代也可能很难再
AppStore年度精选的8个iPhone必装APP,每个都爱不释手新的一年即将到来,不知各位手机上有多少款年度精选APP,这里给大家分享AppStore年度精选的8个iPhone必装APP,每个都爱不释手。1拦截100拦截浏览器跳转广告。我们在用
骁龙870和天玑1200对比,哪一款更好?骁龙870采用7nm工艺制程,拥有1个3。2GHz得A77大核3个2。42GHz得A77中核4个1。8GHz得A55小核组成,本质上还是骁龙865的超频版。天玑1200采用6nm工
为什么亏损越多的企业越值钱?文龚建中国资本策划第一人全球领袖俱乐部理事长中青咨询创始人学资本找建哥,专业靠谱实操多!昨天讲了刘强东他拿了今日资本1000万美金的融资,买了一堆人才进来,把京东搞出了名堂,200
不止是中英互译,碳氧全科学习笔体验,小初高全科覆盖当了父母以后才懂得老一辈哺育的辛酸和望子成龙的迫切,在小学的时候还能够对孩子适当辅导,可自大娃今年上了初中,回家后的学习辅导让我夫妻俩显得力不从心,哪怕能给出正确的答案,解题的过程
希望电商直播带货再多一点假货很少网购的我,最近刷到直播带货,直播说得天花乱坠,产品也看似物美价廉。信以为真的我带着侥幸心理尝试购买了,下单如此的顺利,体验非常的棒!等了不知几天,收到了一个快递。其实收快递也是
小鹏P5满身彩蛋的科技座驾随着新能源车越来越受关注,买纯电动车还是买传统燃油车已经成为了一个值得纠结的问题。说到纯电动汽车的优势,无非就是超低的用车成本强劲的加速性能无上牌门槛等等,但这些都难以成为消费者拒
亲测!在百度希壤里开会是种什么体验?视频加载中2021百度Create大会(AI开发者大会)主论坛今日正式开启,这是国内首次在元宇宙中举办大型科技峰会。百度发布了元宇宙产品希壤,并在希壤举办此次峰会。百度创始人董事长
春节放心买!5家快递企业已宣布春节不打烊随着春节临近,年货购买高峰即将到来。近日,德邦中通韵达极兔申通等多家快递企业宣布2022年春节不打烊,以满足节日期间的寄递需求,保障防疫和民生物资的畅通运输。德邦快递于12月14日