zoukankan      html  css  js  c++  java
  • 2.Maven之(二)Maven生命周期

    转自:https://blog.csdn.net/u012152619/article/details/51473404

    我们在开发项目的时候,不断地在编译、测试、打包、部署等过程,maven的生命周期就是对所有构建过程抽象与统一,生命周期包含项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生成等几乎所有的过程。

    Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,初学者容易将Maven的生命周期看成一个整体,其实不然。这三套生命周期分别是:

    •    CleanLifecycle 在进行真正的构建之前进行一些清理工作。

    •    DefaultLifecycle 构建的核心部分,编译,测试,打包,部署等等。

    •    SiteLifecycle 生成项目报告,站点,发布站点。

    再次强调一下它们是相互独立的,可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然也可以直接运行 “mvn clean install site” 运行所有这三套生命周期。

    每套生命周期都由一组阶段(Phase)组成,我们平时在命令行输入的命令总会对应于一个特定的阶段。maven中所有的执行动作(goal)都需要指明自己在这个过程中的执行位置,然后maven执行的时候,就依照过程的发展依次调用这些goal进行各种处理。这个也是maven的一个基本调度机制。

    每套生命周期还可以细分成多个阶段。

    Clean生命周期

    Clean生命周期一共包含了三个阶段:

    Clean生命周期

    pre-clean

    执行一些需要在clean之前完成的工作

    clean

    移除所有上一次构建生成的文件

    post-clean

    执行一些需要在clean之后立刻完成的工作

    命令“mvn clean”中的就是代表执行上面的clean阶段,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,“mvn clean” 等同于 “mvn pre-clean clean” ,如果我们运行“mvn post-clean” ,那么 “pre-clean”,“clean” 都会被运行。这是Maven很重要的一个规则,可以大大简化命令行的输入。



    Default生命周期

    Maven最重要就是的Default生命周期,也称构建生命周期,绝大部分工作都发生在这个生命周期中,每个阶段的名称与功能如下::

    Default生命周期

    validate

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

    generate-sources

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

    process-sources

    处理源代码,比如过滤一些值

    generate-resources

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

    process-resources

    复制并处理资源文件至目标目录,准备打包

    compile

    编译项目的源代码

    process-classes

    后处理编译生成的文件,例如对Java类进行字节码增强(bytecode enhancement)

    generate-test-sources

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

    process-test-sources

    处理测试源码,比如过滤一些值

    generate-test-resources

    生成测试需要的资源文件

    process-test-resources

    复制并处理测试资源文件至测试目标目录

    test-compile

    编译测试源码至测试目标目录

    test

    使用合适的单元测试框架运行测试。这些测试应

    该不需要代码被打包或发布

    prepare-package

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

    package

    将编译好的代码打包成可分发的格式,如

    JAR,WAR,或者EAR

    pre-integration-test

    执行一些在集成测试运行之前需要的动作。如建

    立集成测试需要的环境

    integration-test

    如果有必要的话,处理包并发布至集成测试可以

    运行的环境

    post-integration-test

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

    理集成测试环境。

    verify

    执行所有检查,验证包是有效的,符合质量规范

    install

    安装包至本地仓库,以备本地的其它项目作为依

    赖使用

    deploy

    复制最终的包至远程仓库,共享给其它开发人员

    和项目(通常和一次正式的发布相关)

    可见,构建生命周期被细分成了22个阶段,但是我们没必要对每个阶段都了如指掌,经常关联使用的只有process-test-resources、test、package、install、deploy等几个阶段而已。

    一般来说,位置稍后的过程都会依赖于之前的过程。这也就是为什么我们运行“mvn install” 的时候,代码会被编译,测试,打包。当然,maven同样提供了配置文件,可以依照用户要求,跳过某些阶段。比如有时候希望跳过测试阶段而直接install,因为单元测试如果有任何一条没通过,maven就会终止后续的工作。

    Site生命周期

    Site生命周期

    pre-site

    执行一些需要在生成站点文档之前完成的工作

    site

    生成项目的站点文档

    post-site

    执行一些需要在生成站点文档之后完成的工作,并且为部署做准备

    site-deploy

    将生成的站点文档部署到特定的服务器上

    这里经常用到的是site阶段和site-deploy阶段,用以生成和发布Maven站点,这是Maven相当强大的功能。

  • 相关阅读:
    微信小程序中样式问题
    根据后台数据,渲染多个坐标在小程序中
    配置vscode同步大神玺哥的配置
    vue总结
    回文数
    Pytorch的runtime error
    PyTorch图像预处理
    python isinstance()函数
    Java实现weightedUF
    Java Iterator
  • 原文地址:https://www.cnblogs.com/sharpest/p/7867345.html
Copyright © 2011-2022 走看看