Maven 生命周期|学习笔记

简介: 快速学习Maven 生命周期

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术Maven生命周期学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15904


Maven生命周期


内容介绍

一、Clean 生命周期含义

二、Defaut 生命周期含义

三、Site 生命周期含义

四、Clean 生命周期阶段介绍

五、Default 生命周期阶段介绍

六、Site 生命周期阶段介绍

七、总结

 

Maven 是用来负责管理项目构建的,这也是其最主要的功能之一。 Maven 是怎样来管理项目的构建过程,主要通过生命周期来定义项目构建顺序。

 

一、Clean 生命周期介绍

Clean (清理)生命周期,这个周期主要用来做清理工作,用来删除上次构建中间所产生的各种各样文件,比如说已知默认大多数情况下这些文件都存在于 target 的文件夹下。


二、Defaut 生命周期介绍

Defaut (构建)生命周期,这个是 Maven 的最主要的生命周期。我们的项目的编译测试打包安装部署等等都在此生命周期里。

 

三、Site 生命周期介绍

Site (站点)生命周期是用来生成我们项目的一些报告,比如说测试报告和 API 文档。我们可以将本项目的测试报告和 API 文档把它发到某一个 Web 服务器上去, Maven 可以根据我们在此中间所包含的定义信息生成我们所需要的文档,以及将这些文档发布到一个指定的   Web 服务器上,方便更多的相互的交流。每一个生命周

期中间都包含了一系列的阶段,这些阶段是按照一定顺序执行的。

 

四、Clean 生命周期阶段介绍

Clean 生命周期比较简单,只包含三个阶段: pre-clean , clean 和 post- clean 。clean 这个阶段是最主要的阶段,因为在这个阶段中间它会清理上一个构建的时候

所生成的文件。

而Pre-clean 是在 clean 之前的,它是做一些预备工作,Post-clean 是在 clean 之

后的,它是做一些善后的工作。

image.png


五、Default 生命周期阶段介绍

Default 作为 Maven 的最主要的生命周期,default 的生命周期的阶段比较多。

第一个阶段是 validate 这个阶段,这个阶段是来验证项目中间他的每个目的下它所需要的资源是否是可用的,如果是可用的,将进行第二个阶段 initialize 。initialize

的作用是做一些初始化的工作,比如说设定一些属性,创建一些以后需要的目录。

第三个阶段是 generate-sources 。

这个阶段可以用一些插件生成一些额外的源代码,比如说剖究对象和模型对象都会需要 get 和 set 方法,但为了减少在每一个模型对象中间写大量的 get 和 set 方法,我们选择一个插件叫 lombok ,这样一个插件去生成这些剖究对象的 get 和 set

的代码。那这个插件就是用在 genreate-sources 这个阶段用来去生成源代码。

而 process-sources  的主要作用是去处理源代码,它会对源代码里面的一些值进行替换等等这样的一些操作。 Generate-resources 是用来生成资源文件的,资源文

件是一些配置文件,这些统称为资源文件。

如果说这些资源文件要用插件自然生成的话,就是在 genreate-sources 这个阶段

产生的。Process –recources

这个作用相似,都是用来处理这些生成的资源文件的,可以作替换,为打包做一些准备等等。在源代码生成了这些资源文件以后,我们有了这俩个东西我们就要来做编译。所以下一个阶段就是 compile 。这个阶段就是把我们的源代码编译成顶

class 文件。

编译成顶 class 文件后我们的下一个阶段称之process-classes。  这个阶段我们是可以对编译出来的 classes 文件进行一些处理的,比如说可以对顶 class 文件做一些质检码的增强处理,可以增强一些功能。这样的一些插件可以放在 process –classes 这个阶段来运行。接下来是测试的部分,测试的部分分为 generate-test-

sources ,这是用来生成测试源代码的, process-test-sources 是对这些源代码做一些处理,比如说替换一些值。 Generate –test-resources 是用来生成测试用的资源文件。

而 process-test-resources 则是复制和处理我们的资源文件。 Test-compile 是用来编译我们项目的单元测试代码的。 Process-test-classes 这个阶段与前面类似,是对我们编译产生的这个测试的 class 文件来进行一些处理,比如说质检码的增强操作等等。完成了这些阶段后,真正来到 test 阶段。这是来做单元测试的,我们会使用一些单元测试的框架来进行单元测试,注意在此阶段测试代码只是在运行,它并不会打包,也不会部署到服务器上去。测试完成后,就是 prepare-package ,即打包之前的预备工作,通常是做解压,比如说处理包的版本。然后是打包的阶段

—— package ,这个阶段我们会根据在 pomp 中的定义创建 jar 包或者是 web 。

打包完成以后,就是 pre-integration-test ,这个阶段主要是做一些集成测试之前的预处理工作,包括一些建立相应的环境等等。之后的一个阶段就是  integration-

test 。这个就是将 jar 包部署到服务器上来进行集成测试。之后是 post-

integration-test ,这是测试之后的环境清理工作。

然后是 verify 阶段,这个阶段是对集成知识的结果进行检查,看他是否质量达标。质量达标的话,进入 install 阶段,这个阶段是把打包的项目部署到本地的用户的目录的“.m2”文件夹里。这样本地的其他项目就可以在本地仓库找到打上去的 jar 包。最后一个阶段是 deploy 。这个阶段可以将 jar 包部署到远端仓库里,使得整

个项目组的其他成员可以访问到这个 jar 包。

 

六、Site 生命周期阶段介绍

第三个生命周期 site 的生命周期阶段包含 pre-site , site,  post-site  , site-deploy 这四个阶段。 Pre-site 和 post-site 分别是做一些生成项目文档的之前之后的处理工作。真正有意义的是 site 这个阶段,这个阶段是用来生成项目的相关文档,而

site-deploy 这个阶段就是把生成的项目文档发布到指定的 web 服务器上去。

 

七、总结

Maven 要定义三个生命周期,是因为他的每一个生命周期之间,他的阶段是有先后

顺序的。

当执行其中一个阶段时,它前面的生命周期都会执行。三个生命周期之间是相互独立的,比如在执行 default 生命周期这个阶段时,它不会执行 clean 生命周期阶段和 site 生命周期阶段。它只会执行在 default 生命周期这个阶段之前的那些阶段。

所以说三个生命周期之间是相互独立的。

而这样的一个设定会使得管理会变得比较简单。比如需要清理时,我们需要执行在 clean 生命周期中间的阶段。我们需要发布项目文档时,需要执行在 site 生命周期

中间的阶段。如果需要打包编译部署,则需执行在 default 生命周期中间的阶段。

这样能大大减少执行命令时的输入,只需指定一个阶段,这样前面的阶段就都会执行。在 Maven 中间,生命周期的阶段定义了工作的顺序,但其实阶段里并没有真正的工作,真正工作的是我们在 Maven 里的插件。生命周期的每一个阶段都会和

插件绑定,所以说执行某阶段时,其实是执行该阶段绑定的插件的功能。

相关文章
|
2月前
|
Java 应用服务中间件 测试技术
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。 本文主要了解Maven基础知识及基础应用,旨在为之后的进一步学习奠定基础。 内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。 仅供参考。
232 80
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
|
1月前
|
Java Devops 持续交付
Maven学习笔记(二):Maven基础(基于IDEA)
【10月更文挑战第1天】Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。上一篇简单介绍了Maven的基础知识,本文主要介绍IDEA上的实际使用场景。内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。仅供参考。
146 0
Maven学习笔记(二):Maven基础(基于IDEA)
|
3月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
3月前
|
Java 测试技术 Maven
Maven学习笔记
这篇文章是关于Maven的学习笔记,包括Maven简介、项目构建工具比较、Maven的四大属性(依赖管理、多模块构件、一致的项目结构、一致的构件模型和插件机制)、Maven的安装和配置、IDEA集成Maven环境,以及Maven项目创建、仓库概念、多模块项目构建、打包操作和依赖概念的详细介绍。
|
3月前
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
|
4月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括Clean(清除)、Default(构建)和Site(站点)三个阶段,用于项目构建与发布。Default生命周期含validate、compile、test、package、verify、install和deploy,确保代码编译、测试、打包和部署。Clean清除目标目录,Site生成项目文档。每个阶段由插件目标组成,如mvn clean package,先执行清理,再打包。
|
5月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven的构建生命周期包含Clean、Default和Site三个阶段,用于项目构建与发布。Default生命周期包括validate、compile、test、package、verify、install和deploy,依次执行从验证、编译、测试到部署的步骤。Clean生命周期用于清除编译输出,而Site生命周期则处理项目文档和站点的生成与部署。
|
5月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven的构建生命周期包括Clean(clean)、Default(validate, compile, test, package, verify, install, deploy)和Site(site, deploy-site)三个阶段。Default生命周期用于验证、编译、测试、打包、检查、安装和部署项目。插件目标如dependency:copy-dependencies可在阶段间操作。例如,`mvn clean dependency:copy-dependencies package`先清理、复制依赖,再打包。
|
5月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括Clean(clean)、Default(validate, compile, test, package, verify, install, deploy)和Site(site, deploy-site)。Default生命周期用于构建与发布,验证项目、编译源码、运行单元测试、打包、质量检查、安装到本地仓库及部署到远程仓库。插件目标如`dependency:copy-dependencies`可在阶段间插入执行。例如,`mvn clean dependency:copy-dependencies package`先清理,然后复制依赖,最后打包。
|
5月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括Clean(清除)、Default(构建)和Site阶段,用于项目构建与发布。Default阶段涉及validate、compile、test、package、verify、install和deploy,确保代码验证、编译、测试、打包、检查、安装及部署。生命周期中的每个阶段对应特定任务,由插件目标组成,可独立或按顺序执行。例如,`mvn clean dependency:copy-dependencies package`先清理,然后复制依赖,最后打包。