Maven
有三套相互独立的生命周期,请注意这里说的是"三套",而且"相互独立"。 初学者容易将Maven
的生命周期看成一个整体,其实不然。
Maven
的这三套生命周期分别是:
Lifecycle | 说明 |
---|---|
clean | 在进行真正的构建之前进行一些清理工作 |
default | 构建的核心部分,编译,测试,打包,部署等等 |
site | 生成项目报告,站点,发布站点 |
每套生命周期都由一组阶段(Phase
)组成,并且,这些阶段是有先后次序的。
clean
生命周期一共包含了三个阶段,依次是:
Phase | 说明 |
---|---|
pre-clean | 执行一些需要在clean之前完成的工作 |
clean | 移除所有上一次构建生成的文件 |
post-clean | 执行一些需要在clean之后立刻完成的工作 |
mvn clean
命令中的clean
就是指的clean
生命周期中的的clean
阶段。
在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行, 也就是说,mvn clean
命令等同于mvn pre-clean clean
命令, 如果我们运行mvn post-clean
命令,那么pre-clean
、clean
这2个phase
都会被运行。 这是Maven
很重要的一个规则,可以大大简化命令行的输入。
site
生命周期一共包含了四个阶段,依次是:
Phase | 说明 |
---|---|
pre-site | 执行一些需要在生成站点文档之前完成的工作 |
site | 生成项目的站点文档 |
post-site | 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备 |
site-deploy | 将生成的站点文档部署到特定的服务器上 |
这里经常用到的是site
阶段和site-deploy
阶段,用以生成和发布Maven
站点, 这可是Maven
相当强大的功能,Manager比较喜欢,文档及统计数据自动生成,很好看。
default
生命周期包含了非常多的阶段,下面是一些常用的阶段,依次是:
Phase | 说明 |
---|---|
validate | 验证项目是否正确以及必须的信息是否可用 |
compile | 编译源代码 |
test | 测试编译后的代码,即执行单元测试代码 |
package | 打包编译后的代码,编译产物存放在target 目录下 |
integration-test | 处理package以便需要时可以部署到集成测试环境 |
verify | 检验package是否有效并且达到质量标准 |
install | 安装package到本地Maven 仓库,方便本地其它项目使用 |
deploy | 部署,拷贝最终的package到远程仓库以让其它开发人员与项目共享,在集成或发布环境完成。 |
记住:运行任何一个阶段的时候,它前面的所有阶段都会被运行, 这也就是为什么我们运行mvn install
的时候,代码会被编译,测试,打包。