生命周期和依赖一样,是maven中最重要的核心概念。平时在使用maven时并不一定需要知道生命周期,但是只有明白了生命周期,才能真正理解很多重要的命令和插件配置。

default生命周期

default是maven的几个生命周期中最重要的一个,其完整周期远不止上面五个阶段,这五个只是其中最重要,并且有必要掌握的。

这五个阶段其实就是五个maven命令,比如compile就是mvn compile,install就是mvn install,作用如下

compile:将代码编译后输出到target目录

test:执行src/test/java目录中的测试用例,只有主代码先编译以后才能对其执行测试。

package:生成jar包到target,只有测试通过以后才允许打包。

install:将上面的jar包安装到本地仓库,只有打包后才能安装。

deploy:这不是部署到tomcat服务器,而是部署到maven远程仓库。只有本地仓库安装成功了,部署到远程仓库才是同步的。

前面的阶段是后面的阶段的必经之路,所以当执行deploy时,会把这五个命令按顺序执行一次。如果执行test,则只会执行compile和test。

生命周期与内置插件

生命周期的很多阶段是和各个插件绑定在一起的,也就是用插件来完成这些阶段的任务。我现在在一个spring boot项目中执行install,控制台信息如下

我并没有在pom.xml中声明任何插件,但这个命令按照生命周期顺序执行了红框中的插件,这些插件是maven内置的。有红字标识的就是我前面讲的前四个较重要的阶段,其他红框是我没讲的,但同样也是生命周期的一个阶段。还有一些阶段是直接执行的,并没有绑定插件,在这里并没有显示。

插件目标

在上面的图中,每个插件末尾都是:xxx,比如maven-install-plugin:2.5.2:install,:号后面的install就是插件目标。一个插件可以有多个目标,每个目标执行的功能也不一样。比如我在第九篇install中讲过,install:install-file是安装jar文件,install:install是安装源代码也是install的默认目标。

自定义插件绑定

用过maven的人可能经常会配置几个常用的插件,比如

maven-resources-plugin:用来设置utf-8编码,就是在我们上面图中的第一个插件的生命周期中完成的。

maven-compiler-plugin:用来设置jdk版本,就是图中的第二个插件。

当你在项目的pom.xml中配置了内置插件的参数,这些参数就会覆盖默认参数,在内置插件绑定的生命周期执行时生效。maven正是通过这种内置插件,给用户提供了很大的灵活配置空间


maven(19)-生命周期和内置插件的更多相关文章

  1. Maven - 深入理解maven构建生命周期和各种plugin插件

    作者:亚当-adam 来源:CSDN 原文:https://blog.csdn.net/zhaojianting/article/details/80321488 版权声明:本文为博主原创文章,转载请 ...

  2. [转载]深入理解maven构建生命周期和各种plugin插件

    我就不复制博主文章了,到原文地址看吧.写这个只是为了自己搜索起来方便些: https://blog.csdn.net/zhaojianting/article/details/80321488 htt ...

  3. (十)深入理解maven构建生命周期和各种plugin插件

    链接:https://blog.csdn.net/zhaojianting/article/details/80321488

  4. Maven的生命周期和插件

    首先解释下maven build等 Maven build是这个插件让你自己去配置执行目标的.Maven clean 清除上一次Maven执行的结果Maven generate-sources会根据p ...

  5. Maven 生命周期的阶段与插件的目标之间的绑定关系

    clean 生命周期 clean 生命周期的阶段 插件的目标 pre-clean clean maven-clean-plugin:clean post-clean default 生命周期的内置插件 ...

  6. Maven入门指南⑦:Maven的生命周期和插件

    一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周期是抽象的,其中的具体任务都交由插件来完成.Mav ...

  7. Maven入门指南10:Maven的生命周期和插件

    一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周期是抽象的,其中的具体任务都交由插件来完成.Mav ...

  8. Maven使用教程三:maven的生命周期及插件机制详解

    前言 今天这个算是学习Maven的一个收尾文章,里面内容不局限于标题中提到的,后面还加上了公司实际使用的根据profile配置项目环境以及公司现在用的archetype 模板等例子. 后面还会总结一个 ...

  9. 用AntRun插件测试Maven的生命周期

    在用AntRun插件之前,需要了解以下几个知识点: 1.Maven的生命周期,参考:http://www.cnblogs.com/EasonJim/p/6816340.html,主要是要知道生命周期里 ...

随机推荐

  1. Postman安装及简介

    Postman简介 不管web自动化测试还是APP自动化端,测试过程中都会涉及到接口测试.接口测试分为服务器端测试和客户端测试.今天给大家介绍一个测试服务器端的小工具--Postman.它可以构造各类 ...

  2. Scala的下载和安装(本地)

    前言 Scala版本的选法: 目前,Kafka库和JDBC并不支持Scala2.11的编译,以及结合大多数人的使用请来看.         scala2.10.*为主,在这,scala2.10.4版本 ...

  3. 可视化的Redis数据库管理工具redis-desktop-manager的初步使用(图文详解)

    不多说,直接上干货! 无论是Linux 还是 Windows里安装Redis, Windows里如何正确安装Redis以服务运行(博主推荐)(图文详解) Windows下如何正确下载并安装可视化的Re ...

  4. 白月黑羽Python在线教程

    推荐白月黑羽Python在线教程 白月黑羽 站在初学者的角度为大家安排了Python学习教程,帮助大家迅速掌握程序开发技能. http://www.python3.vip/doc/tutorial/p ...

  5. mongodb与关系型数据库优缺点比较

    1.与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度②文档结构的存储方式,能够更便捷的获取数据③内置GridFS,支持大容量的存储.④内置Sharding.⑤第 ...

  6. Java List 生成 树

    package com.victop.ibs; import java.util.ArrayList; import java.util.List; import org.apache.commons ...

  7. 安装Oracle需要调整的linux内核参数

    在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-nr = 1048576 fs.file-m ...

  8. android开发学习笔记系列(1)-android起航

    前言 在学习安卓的过程中,我觉得非常有必要将自己所学的东西进行整理,因为每每当我知道我应该是如何去实现功能的时候,有许多细节问题我总是会遗漏,因此我也萌生了写一系列博客来描述自己学习的路线,让我的an ...

  9. 一张图解决Struts2添加源码

    主要是选择的路径:F:/struts2/struts-2.3.31/src/core/src/main/java

  10. HDU 2682 Tree(Kruskal算法求解MST)

    题目: There are N (2<=N<=600) cities,each has a value of happiness,we consider two cities A and ...