当前位置: 首页 > news >正文

Maven的生命周期阶段

一、Maven的生命周期

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

Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法。

 

二、三套生命周期

Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。

1、clean生命周期:清理项目,包含三个phase。

1)pre-clean:执行清理前需要完成的工作

2)clean:清理上一次构建生成的文件

3)post-clean:执行清理后需要完成的工作

2、default生命周期:构建项目,重要的phase如下。

1)validate:验证工程是否正确,所有需要的资源是否可用。
2)compile:编译项目的源代码。  
3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
4)Package:把已编译的代码打包成可发布的格式,比如jar。
5)integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
6)verify:运行所有检查,验证包是否有效且达到质量标准。
7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

3、site生命周期:建立和发布项目站点,phase如下

1)pre-site:生成项目站点之前需要完成的工作

2)site:生成项目站点文档

3)post-site:生成项目站点之后需要完成的工作

4)site-deploy:将项目站点发布到服务器

 

三、命令行和生命周期

各个生命周期相互独立,一个生命周期的阶段前后依赖。

举例如下:

1、mvn clean

调用clean生命周期的clean阶段,实际执行pre-clean和clean阶段

2、mvn test

调用default生命周期的test阶段,实际执行test以及之前所有阶段

3、mvn clean install

调用clean生命周期的clean阶段和default的install阶段,实际执行pre-clean和clean,install以及之前所有阶段



转载自:http://www.cnblogs.com/tenghoo/p/maven_life_cycle.html

相关文章:

  • Linux中的tar命令
  • Lombok 学习
  • Linux Makefile 详细语法
  • Http请求中Content-Type讲解以及在Spring MVC中的应用
  • Charles 从入门到精通
  • Java中的8种基本数据类型
  • 搭建Nginx+Java环境
  • ajax与302响应
  • 服务器缓存技术
  • squid学习(一)
  • 使用Redis之前5个必须了解的事情
  • 大数据框架 Hadoop 和 Spark 的异同
  • 下载tomcat9并正常启动后,浏览器无法显示localhost:8080对应网页
  • Java对象的序列化和反序列化
  • Spring连接数据库的几种常用的方式
  • [Vue CLI 3] 配置解析之 css.extract
  • 【个人向】《HTTP图解》阅后小结
  • cookie和session
  • css属性的继承、初识值、计算值、当前值、应用值
  • Map集合、散列表、红黑树介绍
  • MySQL用户中的%到底包不包括localhost?
  • QQ浏览器x5内核的兼容性问题
  • SpringCloud集成分布式事务LCN (一)
  • Tornado学习笔记(1)
  • Web标准制定过程
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 检测对象或数组
  • 力扣(LeetCode)22
  • 那些年我们用过的显示性能指标
  • 第二十章:异步和文件I/O.(二十三)
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ![CDATA[ ]] 是什么东东
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (1)常见O(n^2)排序算法解析
  • (30)数组元素和与数字和的绝对差
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (ibm)Java 语言的 XPath API
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (十六)一篇文章学会Java的常用API
  • (转)ABI是什么
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • . Flume面试题
  • .naturalWidth 和naturalHeight属性,
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET gRPC 和RESTful简单对比
  • .NET 反射 Reflect
  • .NET多线程执行函数
  • .net连接MySQL的方法
  • .NET企业级应用架构设计系列之技术选型
  • @angular/cli项目构建--Dynamic.Form
  • @Bean, @Component, @Configuration简析