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

Maven百科 - 项目构建中的生命周期

时间:2015-09-14 14:01:50      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

Maven 中的三套生命周期

    在maven中,其实是有三套相互独立的生命周期(Lifecycle),而不是我们以为的一套生命周期,准确地来说,在maven的世界,它有自己的一套生命周期管理的技术体系,在这套体系中,maven为我们定义了三套互相不影响的生命周期。它们分别是clean,default和site。 其中clean 和default最为常用了。

     此外呢,每套生命周期 都有若干个生命周期阶段(phase)。其中每套生命周期中的阶段都依赖于前一个阶段,以 clean 生命周期为例。 clean 生命周期 它包含了 三个阶段,pre-clean, clean, post-clean.    Clean 依赖与pre-clean, post-clean依赖与clean,也就是说,当我们执行clean 阶段的时候, pre-clean 也会被执行。

    下面会详细介绍下三套生命周期

Clean 生命周期

    clean 生命周期的目的是情理项目,它包含了三个阶段:

  1.      pre-clean 执行一次清理前需要完成的工作

  2.      clean 执行清理工作

  3.      post-clean 执行一些清理后要完成的工作

Default 生命周期

    default 生命周期定义了真正构建时所需要执行的所有的步骤,它是所有生命周期中最核心的部分,它包括如下的阶段


生命周期阶段
描述

validate 验证项目是否正确,以及所有为了完整构建必要的信息。

initialize

generate-sources 生成所有需要包含在编译过程中的源代码

process-sources 处理源代码

generate-resources 生成所需要的包含在打包过程中的资源文件

process-resources 处理项目主资源文件。一般来说,是对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中

compile 编译项目的主源码。一般来说,是编译src/main/java目录下的Java文件至项目输出的主classpath目录中

 process-classes 处理编译生成的文件 如.class文件

generate-test-sources

生成所有包含在测试编译过程中的测试源码


process-test-sources

处理测试源码


generate-test-resources

生成厕所需要的资源文件


process-test-resources

复制并处理测试次元文件到测试目标目录


test-compile

编译测试代码


process-test-classes

处理 编译测试文件


test

执行测试


prepare-package

在真正打包之前,执行一些准备打包的必要操作


package

将编译好的代码打包成需要的格式


pre-integration-test

执行一些在集成测试前的需要动作


integration-test

处理包并发布到集成测试环境


post-integration-test

执行一些在集成测试运行之后需要的动作


verify

执行所有检查,验证包是否有效


 install

安装包至本地仓库


 deploy

复制包到远程仓库,共享给其他开发人员和项目

    


Site 生命周期

    Site 生命周期的目的是建立和发布项目站点,Maven 能够基于 POM所包含的信息,自动生成一个友好的站点,方便团队交流和发布信息。它包含了如下4个阶段

  1.     pre-site 执行项目生成前的工作

  2.     site 生成项目站点文档

  3.     post-site 执行生成站点后的工作

  4.     site-deploy 将生成的项目站点发布到服务器上

命令行与生命周期

    从maven的命令行中,可以看出 执行maven 任务最主要的方式 就是调用maven的生命周期阶段。需要注意的是,这三套生命周期,是相互独立的,只有在同一个生命周期里面的阶段 具有依赖关系。

    以 mvn test 为例,该命令调用defaul生命周期的test阶段。实际执行的阶段为default生命周期的 validate,initialize等

直到test的所有阶段。这也解释了在执行测试的时候,项目源代码也会得到编译。

Maven百科 - 项目构建中的生命周期

标签:

原文地址:http://my.oschina.net/u/1041012/blog/505811

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