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实战  - 许晓斌

 

 

猜你喜欢

转载自liang-hr.iteye.com/blog/2246436
今日推荐