Maven生命周期

参考

1.1、生命周期(Lifecycle)

Maven有三套相互独立的生命周期,请注意这里说的是"三套",而且"相互独立"。 初学者容易将Maven的生命周期看成一个整体,其实不然。

Maven的这三套生命周期分别是:

Lifecycle说明
clean在进行真正的构建之前进行一些清理工作
default构建的核心部分,编译,测试,打包,部署等等
site生成项目报告,站点,发布站点
1.2、阶段(Phase)

每套生命周期都由一组阶段(Phase)组成,并且,这些阶段是有先后次序的。

1.2.1、Phase of Clean Lifecycle

clean生命周期一共包含了三个阶段,依次是:

Phase说明
pre-clean执行一些需要在clean之前完成的工作
clean移除所有上一次构建生成的文件
post-clean执行一些需要在clean之后立刻完成的工作

mvn clean命令中的clean就是指的clean生命周期中的的clean阶段。

在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行, 也就是说,mvn clean命令等同于mvn pre-clean clean命令, 如果我们运行mvn post-clean命令,那么pre-cleanclean这2个phase都会被运行。 这是Maven很重要的一个规则,可以大大简化命令行的输入。

1.2.2、Phase of Site Lifecycle

site生命周期一共包含了四个阶段,依次是:

Phase说明
pre-site执行一些需要在生成站点文档之前完成的工作
site生成项目的站点文档
post-site执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy将生成的站点文档部署到特定的服务器上

这里经常用到的是site阶段和site-deploy阶段,用以生成和发布Maven站点, 这可是Maven相当强大的功能,Manager比较喜欢,文档及统计数据自动生成,很好看。

1.2.3、Phase of Default Lifecycle

default生命周期包含了非常多的阶段,下面是一些常用的阶段,依次是:

Phase说明
validate验证项目是否正确以及必须的信息是否可用
compile编译源代码
test测试编译后的代码,即执行单元测试代码
package打包编译后的代码,编译产物存放在target目录下
integration-test处理package以便需要时可以部署到集成测试环境
verify检验package是否有效并且达到质量标准
install安装package到本地Maven仓库,方便本地其它项目使用
deploy部署,拷贝最终的package到远程仓库以让其它开发人员与项目共享,在集成或发布环境完成。

记住:运行任何一个阶段的时候,它前面的所有阶段都会被运行, 这也就是为什么我们运行mvn install的时候,代码会被编译,测试,打包。