Maven学习笔记(3) --- 生命周期

Maven的3个生命周期:

Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。

Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法。
每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。

  • clean生命周期:清理项目,phase如下。

    • pre-clean:执行清理前需要完成的工作
    • clean:清理上一次构建生成的文件
    • post-clean:执行清理后需要完成的工作
  • default生命周期:构建项目,phase如下。

    • validate:验证工程是否正确,所有需要的资源是否可用。
    • initialize:初始化
    • generate-sources
    • process-sources:处理资源文件 【src/main/resources】
    • generate-resources
    • process-resources
    • compile:编译项目的源代码。【src/main/java】
    • process-classes:处理编译后的class文件
    • generate-test-sources
    • process-test-sources:处理测试资源文件【src/test/resources】
    • generate-test-resources
    • process-test-resources
    • test-compile:编译测试文件【src/test/java】
    • process-test-classes:处理编译后的测试class文件
    • test:使用单元测试框架来测试已编译的源代码。测试代码不会被打包或布署。
    • pre-package:打包之前要做的准备工作
    • package:把已编译的代码打包成可发布的格式,比如jar。
    • pre-integration-test
    • integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
    • post-integration-test
    • verify:运行所有检查,验证包是否有效且达到质量标准。
    • install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
    • deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
  • site生命周期:建立和发布项目站点,phase如下。

    • pre-site:生成项目站点之前需要完成的工作
    • site:生成项目站点文档
    • post-site:生成项目站点之后需要完成的工作
    • site-deploy:将项目站点发布到服务器

命令行与生命周期

  • mvn clean :调用clean生命周期的clean阶段,实际执行pre-clean和clean阶段。
  • mvn test:调用default生命周期的test阶段,实际执行test以及之前所有阶段。
  • mvn clean install:调用clean生命周期的clean阶段和default的install阶段,实际执行pre-clean和clean,install以及之前所有阶段。
  • mvn clean deploy site-deploy:调用clean生命周期的clean阶段,default生命周期的deploy阶段和site生命周期的site-deploy阶段。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 所有项目的构建都是有生命周期的,这个生命周期包括:项目清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生...
    zlcook阅读 7,863评论 0 21
  • 当前,JVM生态圈主要的三大构建工具: Apache Ant(带着Ivy) Maven Gradle 对于刚开始接...
    清枫_小天阅读 11,108评论 1 13
  • 生命周期是maven的又一大核心,maven的生命周期是抽象的,而实际行为都是以插件的方式来完成的,下面我将对生命...
    小炼君阅读 4,999评论 0 50
  • 转载 我们在开发项目的时候,不断地在编译、测试、打包、部署等过程,maven的生命周期就是对所有构建过程抽象与统一...
    ifeelok0319阅读 1,414评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,860评论 19 139

友情链接更多精彩内容