Maven生命周期

        生命周期和插件是Maven的两个核心概念,实际上我们也一直在使用它们,只是没有察觉而已。像mvn install或mvn package,就是它们的具体表现,可以说生命周期和插件的联系是密不可分的。

1.什么是Maven的生命周期

        Maven的生命周期是一个抽象的概念,并不具体指某个操作,是Maven经过长时间思考和分析后总结出来的。它包括了一个项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等一系列的构建流程。但它仅仅是抽象而已,并不执行具体操作,它的具体操作是交给Maven的各种插件来实现,所以说生命周期插件是密不可分的。

2.Maven生命周期详解

        Maven的生命周期并不像我们所想的是一条线,它实际上有3套相互独立的生命周期,分别是:cleandefaultsite

        通常clean生命周期的目的是清理项目上一次构建的生成物,default生命周期的目的是构建项目,site生命周期的目的是建立项目站点(这个很少用到)。而这三套生命周期,又各自都有一些不同的阶段(phase),这些阶段就是生命周期中最细化的操作,当然它仍然是抽象概念,具体操作是给插件做的。

        下面具体的说明这3个生命周期的各个阶段,注意是有顺序的,各个阶段之间的顺序也是如下的顺序

clean生命周期:

  • pre-clean:执行清理前的准备工作
  • clean:清理上一次构建生成的所有文件
  • post-clean:执行清理后需要完成的工作
  • clean的生命周期的目的仅是清理项目,核心是clean阶段

default生命周期

  • validate:验证工程是否正确,所有需要的资源是否可用。
  • initialize:初始化构建状态,例如设置属性或创建目录。
  • generate-sources:生成包含在编译中的任何源代码。
  • process-sources:对源代码进行处理,例如过滤任何值。
  • generate-resources:生成要包含在所述包中的资源。
  • process-resources:将资源复制到目标目录(target目录)中并进行处理,准备打包。
  • 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:将打好的包安装到远程仓库,供其他项目使用。

        default生命周期是最核心的,它包含了构建项目时真正需要执行的所有步骤,虽然看起来很多很杂,但是几个常用的阶段我们也能一眼就认出来:complile、test、package、install。而且在compile前后的几个阶段,明显和后面test-compile的几个阶段是类似的。基本上我们也不用全都记住,记一下常用的几个阶段就好了,这样还是挺好理解的。

site生命周期

  • pre-site:执行在生成站点前的准备工作。
  • site:生成项目的站点文档。
  • post-site:执行生成站点后需要完成的工作。
  • site-deploy:发布生成的站点文档。

        site生命周期的目的是建立和发布项目站点,maven能够基于POM所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值