简单了解

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

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

Maven内置3个生命周期(Clean 、Default、Site)

1、Clean Lifecycle 在进行真正的构建之前进行一些清理工作。(项目的清理)

2、Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。(项目的部署)

3、Site Lifecycle 生成项目报告,站点,发布站点。(项目站点文档的创建)

每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。

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

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

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

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

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

validate:验证工程是否正确,所有需要的资源是否可用。

compile:编译项目的源代码。

test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。

Package:把已编译的代码打包成可发布的格式,比如jar。

integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。

verify:运行所有检查,验证包是否有效且达到质量标准。

install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。

Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

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

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

site:生成项目站点文档

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

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

组成maven单个生命周期的元素:

组成maven生命周期的元素被称为phase,每一个生命周期会有多个phase,每个phase都是就相当于一个执行节点,而每个执行节点中又包含多个实际执行maven任务的goal。同时,每个生命周期中所有的phase都是顺序执行的,也就是说当你执行后面的phase,这个phase之前的所有phase都会被执行,就拿最简单的mvn clean install这个maven 命令来说,这个命令中的clean phase和install phase分别属于clean生命周期以及default生命周期。

(1)clean生命周期中包含以下几个phase:pre-clean、clean、post-clean

(2)default生命周期中包含的生命周期就比较多了,列几个主要的:.....、compile、.....test........、package..........、install、deploy

看到了吧,当执行命令时会首先执行clean生命周期中的pre-clean和clean(其实是执行clean中的clean:clean goal,这时clean phase默认的goal)。当执行完clean生命周期后就会执行default周期,而命令行中要求执行的是install这个phase,由于maven执行一个生命周期时会顺序执行命令phase之前所有的phase,所以这里会把install phase之前所有的phase都执行完成之后才会执行install(实际是执行这里默认的install:install goal)。

总结:

1、maven的生命周期内置3种,clean用来清理项目,default用来构建项目,site用来生成项目站点文档。

2、每周生命周期都是由一些阶段组成。

3、一个阶段由插件目标组成。

4、一些阶段默认绑定着插件目标。

5、pom中的packaging标签的值对应着不同的阶段来构建项目。

maven自带clean_Maven生命周期(示例代码)相关推荐

  1. maven详解之生命周期与插件

    Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...

  2. Maven(2)--生命周期以及插件目标

    maven的生命周期 maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成.这种思想和设计模式中的模板方式. maven内置的生命周期: maven ...

  3. android生命周期_Android开发 View的生命周期结合代码详解

    咱们以TextView控件为例: /** * Created by SunshineBoy on 2020/9/23. */ public class TestTextView extends and ...

  4. 第9章 maven的插件和生命周期

    第9章 maven的插件和生命周期 本章介绍了maven生命周期.插件以及如何配置插件 9.1 生命周期 一般的项目都会经历这几个步骤:编译,测试,打包,部署,有些公司是手动方式,有些是自动化脚本方式 ...

  5. Maven补全之生命周期(Lifecycle)

    Maven补全之生命周期(Lifecycle) Maven生命周期基础概念 Maven是基于生命周期构建的,一个Maven项目的构建是已经被清晰定义的过程. 对于我们使用Maven构建项目来说,POM ...

  6. maven scope 属性和生命周期

    2019独角兽企业重金招聘Python工程师标准>>> maven的dependency参数 scope的分类 1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还 ...

  7. maven的仓库、生命周期与插件

    一.仓库 统一存储所有Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(另一种特殊的远程仓库,为节省宽带和时 ...

  8. Maven入门-6-Maven的生命周期和核心命令详细介绍

    本篇来介绍Maven的生命周期和前面介绍过几个命令的详细介绍过程.先介绍生命周期,生命周期中不同阶段就包括了一些命令,所以理解了生命周期,再来看看每一个命令的详细使用过程. 1.Maven的生命周期分 ...

  9. 一步步实现:springbean的生命周期测试代码

    1. 创建实体SpringBean public class SpringBean {private String username;public String getUsername() {retu ...

最新文章

  1. 东软村医管理平台_软件定义汽车“性感”吗?东软睿驰有自己的答案
  2. Li Fei-fei写给她学生的一封信,如何做好研究以及写好PAPER
  3. TUM数据集制作BundleFusion数据集
  4. Django 模型与 Mysql 数据类型对应
  5. 使用transform实现手风琴布局
  6. 吴恩达机器学习编程作业
  7. java fckeditor下载,Fckeditor与Java web 整合代码
  8. Windows消息钩子[键盘监控]
  9. 常用邮箱接收邮件服务器与发送邮件服务器列表
  10. python语言turtle库画图代码示例_5分钟轻松搞定,Python开发之turtle库的基本操作...
  11. python五子棋双人对弈_用python实现双人五子棋(终端版)
  12. 【基础】struct的函数操作
  13. 用于软件测试的最佳免费自动化工具
  14. jpg格式图片怎么转换成pdf格式?如何把jpg图片转换成pdf格式文档?
  15. log4j2日志输出到控制台-Maven工程
  16. 华为云14天鸿蒙设备开发培训Day3:快速入门
  17. Dcloud学习资料汇总+视频教程
  18. 愿你编码半生,归来仍是少年
  19. 感芯科技MC3172移植U8g2图形库
  20. 2017我们一起走过,2018我们继续!

热门文章

  1. 35岁后,不是你被淘汰,而是你没有发现你的价值 | 如何发现35岁后的价值?
  2. 尋找《案件取证操作教程EnCase》.ppt。
  3. 高中计算机教案范文,最新高一信息技术教学设计范文
  4. 【资讯】国家级转基因大豆玉米品种审定标准
  5. Nginx+keepalived双机热备(主从模式)
  6. 实验7-1-9 数字加密 (15 分)
  7. 旧书街App人物模型示例
  8. 机房搬迁的一般步骤以及注意事项
  9. 结构性产品(structured Products) 学习总结
  10. 肖博高考数学二轮复习方法之圆锥曲线 解题策略附带题型解析