Maven - 生命周期(五)
什么是生命周期
Maven对项目开发各阶段工作:项目清理,初始化,编译,测试,打包,集成测试,验证,部署,站点生成称为构建活动。对这一系列活动的抽象,则称之为生命周期。Maven有三个生命周期:clean , default ,site ,每个周期下都有若干个构建任务,任务需要相应的插件实现。
Clean生命周期
clean 生命周期目的是清理项目,包括三个阶段
1. pre-clean #执行一些清理项目前的工作
2. clean #清理上一次构建生成的文件
3. post-clean #执行一些清理项目后的工作
Default生命周期
default 生命周期定义了项目构建核心步骤,包括
1. validate
2. initialize
3. generate-sources
4. process-sources #处理主资源文件 src.main.resources
5. generate-resources
6. process-resources
7. compile #编译主代码 src.main.java
8. process-classes
9. generate-test-sources
10. process-test-sources #处理测试资源文件 src.test.resources
11. generate-test-resources
12. process-test-resources
13. test-compile #编译测试代码 src.test.java
14. process-test-classes
15. test #运行测试
16. prepare-package
17. package #打包项目
18. pre-integration-test
19. integration-test
20. post-integration-test
21. verify
22. install #将包安装到本地仓库中
23. deploy #将包安装到远程仓库中
Site生命周期
1. pre-site
2. site #生成项目站点文档
3. post-site
4. site-deploy #将生成的项目站点发布到服务器上
好的,下面我们就可以通过命令行与上面的生命活动交互了!
命令行与生命周期
mvn clean #调用clean生命周期的clean阶段(包括pre-clean,clean)
mvn test #调用default生命周期的test阶段(包括validate -> test的所有阶段)
mvn clean install #跨越clean和default两个生命周期的多个阶段(pre-clean->clean, validate->install)
mvn clean deploy site-deploy #跨越三个生命周期
插件目标
大家会发现Maven的安装包很小,只有在使用的时候,才会下载相关插件完成构建活动。每个插件都有特定的目标(Plugin Goal),比如 maven-dependency-plugin 有十多个目标,每个目标对应特定功能。如前面章节介绍的:mvn dependency : list | tree | analyze 。
插件与生命周期绑定
Maven的生命周期与插件绑定,用以完成实际的构建任务。比如编译任务,对应default生命周期的compile阶段,通过插件 maven-compiler-plugin 的 compile 目标,就能完成这一构建任务。
Maven为了实现零配置就可以完成构建任务,提供了内置插件绑定,如下图:
参考
Maven实战 - 许晓斌