码迷,mamicode.com
首页 > 其他好文 > 详细

【maven详解-生命周期】Maven的生命周期和插件

时间:2015-04-27 18:22:43      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

maven的生命周期是根据我们项目中常见的流程来定义的:清理、编译、测试、打包、集成测试、验证、部署等功能。maven的每个生命周期对应不同的阶段,每个阶段都对应不同的插件。

maven定义了三套生命周期:clean、default、site。每个生命周期都包含了一些阶段(phase),三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase。执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase。

1 clean生命周期:

pre-clean    :执行清理前的工作;

clean    :清理上一次构建生成的所有文件;

post-clean    :执行清理后的工作

使用 maven-clean-plugin插件,下面日志是执行mvn clean后的结果,分别对应clean的三个生命周期

[INFO] -----------------------------------------------------------------------

pre-clean:执行清理前的工作

mvn clean

[INFO] Scanning for projects...

[WARNING]
[WARNING] Some problems were encountered while building the effective model for
com.common.item.base:common-base:jar:0.0.1

[INFO] ------------------------------------------------------------------------

clean:清理上一次构建生成的所有文件
[INFO] Reactor Build Order:
[INFO]
[INFO] common-pom
[INFO] common-root
[INFO] common-base
[INFO] common-util
[INFO] common-deploy
[INFO]
[INFO] ------------------------------------------------------------------------

post-clean:执行清理后的工作
[INFO] Building common-pom 0.0.1
[INFO] ------------------------------------------------------------------------

 

2 default生命周期:default生命周期是最核心的,它包含了构建项目时真正需要执行的所有步骤。

  1. validate:验证项目是否正确,以及所有为了完整构建必要的信息是否可用
    执行mvn validate命令,验证生成项目所依赖的pom,root信息
     1 [INFO] -----------------------------------------
     2 mvn validate
     3 [INFO] Scanning for projects...
     4 [WARNING]
     5 [WARNING] Some problems were encountered while building the effective model for
     6 com.common.item.base:common-base:jar:0.0.1
     7 [INFO] ------------------------------------------------------------------------
     8 [INFO] Reactor Build Order:
     9 [INFO]
    10 [INFO] common-pom
    11 [INFO] common-root
    12 [INFO] common-base
    13 [INFO] common-util
    14 [INFO] common-deploy
    15 [INFO]
    16 [INFO] ------------------------------------------------------------------------
    17 [INFO] Building common-pom 0.0.1
    18 [INFO] ------------------------------------------------------------------------
    19 [INFO] ------------------------------------------------------------------------
    20 [INFO] Building common-deploy 0.0.1
    21 [INFO] ------------------------------------------------------------------------
    22 [INFO] ------------------------------------------------------------------------
    23 [INFO] Reactor Summary:
    24 [INFO]
    25 [INFO] common-pom ........................................ SUCCESS [0.415s]
    26 [INFO] common-root ....................................... SUCCESS [0.185s]
    27 [INFO] common-base ....................................... SUCCESS [0.173s]
    28 [INFO] common-util ....................................... SUCCESS [0.182s]
    29 [INFO] common-deploy ..................................... SUCCESS [0.002s]
    30 [INFO] ------------------------------------------------------------------------
    31 [INFO] BUILD SUCCESS
    32 [INFO] ------------------------------------------------------------------------
    33 [INFO] Total time: 1.247s
    34 [INFO] Finished at: Mon Apr 27 17:32:35 CST 2015
    35 [INFO] Final Memory: 3M/59M

    技术分享
  2. initialize
  3. generate-sources:生成所有需要包含在编译过程中的源代码
  4. process-sources:处理源代码,比如过滤一些值
  5. generate-resources:生成所有需要包含在打包过程中的资源文件,使用插件maven-resources-plugin
  6. process-resources :复制和处理资源文件到target目录,准备打包;
  7. compile :编译项目的源代码,使用插件maven-compiler-plugin
  8. process-classes:后处理编译生成的文件,例如对Java类进行字节码增强(bytecode enhancement)
  9. generate-test-sources:生成所有包含在测试编译过程中的测试源码
  10. process-test-sources:处理测试源码,比如过滤一些值
  11. generate-test-resources:生成测试需要的资源文件
  12. process-test-resources:复制并处理测试资源文件至测试目标目录
  13. test-compile    :编译测试源代码;
  14. process-test-classes:编译测试源码至测试目标目录
  15. test    :运行测试代码,使用合适的单元测试框架运行测试。这些测试应该不需要代码被打包或发布
  16. prepare-package:在真正的打包之前,执行一些准备打包必要的操作。这通常会产生一个包的展开的处理过的版本(将会在Maven 2.1+中实现)
  17. package    :打包成jar或者war或者其他格式的分发包;将编译好的代码打包成可分发的格式,如JARWAR,或者EAR
  18. pre-integration-test:执行一些在集成测试运行之前需要的动作。如建立集成测试需要的环境
  19. integration-test:如果有必要的话,处理包并发布至集成测试可以运行的环境
  20. post-integration-test:执行一些在集成测试运行之后需要的动作。如清理集成测试环境。
  21. verify:执行所有检查,验证包是有效的,符合质量规范
  22. install    :将打好的包安装到本地仓库,供其他项目使用;
  23. deploy    :将打好的包安装到远程仓库,供其他项目使用;

3 site生命周期

  1. pre-site
  2. site    :生成项目的站点文档;
  3. post-site
  4. site-deploy    :发布生成的站点文档

【maven详解-生命周期】Maven的生命周期和插件

标签:

原文地址:http://www.cnblogs.com/yantz/p/4460718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!