Maven补全之生命周期(Lifecycle)

Maven生命周期基础概念

Maven是基于生命周期构建的,一个Maven项目的构建是已经被清晰定义的过程。

对于我们使用Maven构建项目来说,POM.xml文件可以确保我们得到自己想要的项目(项目名,包依赖,版本号等等)

Maven有三种内置的构建生命周期:defaultcleansite

default(默认)生命周期会处理项目的部署,

clean(清理)生命周期负责项目的清理,

site生命周期生成项目的文档(java documentation

每个生命周期都由不同的阶段构成,每一个构建阶段代表生命周期里的一个阶段

以default生命周期为例,它主要包括如下构建阶段(完整的构建阶段见 Lifecycle构建阶段)

  • validate :验证要构建的项目是正确的,并且所有需要的资源是存在的(例如pom.xml文件以及各种import的依赖包已经被正确加载等等)
  • compile:编译项目中的java文件成为虚拟机能识别的.class字节码文件(相当于 mvn compile 命令)
  • test:使用合适的单元测试框架来测试编译的源代码是否可以正确运行
  • package:将编译后的源代码打包(JAR 或者 WAR)
  • verify:验证测试结果确保达到目标
  • install:将Maven项目(打包完成)放入本地Maven仓库(相当于mvn install命令)
  • deploy:完成全部的项目构建,将最终生成的包文件发布到Maven远程仓库

可以看出,default生命周期会在保证项目正确的情况下完成一个项目的所有构建工作(编译,打包,安装到本地仓,发布到远程仓,是一个公司开发过程中所有需要的所有过程。

对于clean生命周期,比较常见的是执行mvn clean命令,会删除maven构建的所有文件(target目录下),包括所有的编译生成的字节码文件和打包生成的包文件。

对于site生命周期,Maven会自动提取所有的注释,自动生成结构化的javaDoc文档,同时也会生关于Maven构建的项目信息,下图是Maven site生命周期生成的一个结构化的目录

在这里特别需要说明的一点是,我们在命令行运行的常用Maven命令,比如:

    mvn install

maven会自动完成default生命周期里install构建过程以上的全部构建过程(比如validate, compile, package等等)


本文基于:
Maven官方文档-Lifecycle

转载于:https://www.cnblogs.com/jap6/p/10641300.html

Maven补全之生命周期(Lifecycle)相关推荐

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

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

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

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

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

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

  4. maven生命周期lifecycle和plugins介绍

    一.Maven的生命周期 生命周期的定义:Maven的生命周期就是为了对所有的构建过程进行抽象和统一.在大量项目的构建过程中,Maven总结出了一套高度完善的,易于扩展的生命周期,包括项目的清理,初始 ...

  5. vue created 调用方法_vue 基础-生命周期 lifecycle 的执行顺序和作用

    前言 <vue 基础>系列是再次回炉 vue 记的笔记,除了官网那部分知识点外,还会加入自己的一些理解.(里面会有部分和官网相同的文案,有经验的同学择感兴趣的阅读) 平时开发中,我真的不太 ...

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

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

  7. maven自带clean_Maven生命周期(示例代码)

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

  8. maven scope 属性和生命周期

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

  9. Amazon S3 设置对象的生命周期Lifecycle

    2019独角兽企业重金招聘Python工程师标准>>> 保存在S3上面的文件,有些是长期保存的,而有一些我们却不希望保存太久,过一段时间后就可以删除了.例如备份文件,太旧的就要删除: ...

最新文章

  1. 使用Python,OpenCV进行卡类型及16位卡号数字的OCR
  2. windows下vs2013使用C++访问redis
  3. ihtml2document能不能根据id获取dom_回到基础:什么是DOM及DOM操作?
  4. bootstrap大图轮播手机端不能手指滑动解决办法
  5. 如何创建一个Eureka Client?
  6. java 最优化_java-多维度求最优解
  7. Leetcode--347. 前k个高频元素
  8. 8001.win10安装ros2-dashing环境搭建
  9. tar解压时遇到tar: Skipping to next header
  10. 独家揭秘阿里云SQL Server AlwaysOn集群版重大突破
  11. Creo6.0产品设计基础到高级曲面造型视频教程
  12. IntelliJ IDEA使用教程
  13. 一些关于CCNA考试的感受
  14. 怎么设置html页面背景图片大小怎么设置,css怎么设置背景图片大小?
  15. 人事管理系统之部门结构树的展示
  16. 什么是雪花算法?啥原理?
  17. 1190 -- 找x
  18. 群晖NAS Git Server项目源代码管理 配置搭建
  19. 甘超波:NLP检定语言模式
  20. eclipes 快捷键操作:

热门文章

  1. MySQL中字符串函数详细介绍
  2. 提高速度 - MyEclipse配置
  3. 软件工程实践2017第一次作业
  4. PCB-电解电容的封装
  5. 配置mysql使其允许外部ip进行登录
  6. Redis-cluster集群【第一篇】:redis安装及redis数据类型
  7. jQuery 图片轮流展示效果
  8. 关于创业公司的一些事情
  9. define 汉字 error C2001: newline in constant
  10. 使用 Visual Studio 编译 wget 为库文件