生命周期和依赖一样,是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. Mysql 断电数据损毁恢复

    error log: Database page corruption on disk or a failed 处理: /etc/my.cnf 设置 innodb_force_recovery = 6 ...

  2. Etcd安全配置之Basic Auth认证

    <中小团队落地配置中心详解>文章中我们介绍了如何基于Etcd+Confd构建配置中心,最后提到Etcd的安全问题时说了可以使用账号密码认证以达到安全访问的目的,究竟该如何开启认证以及怎么设 ...

  3. Java 生成指定范围的随机数

    /** * 生成[min, max]之间的随机整数 * * @param min 最小整数 * @param max 最大整数 * @return * @author jqlin */ private ...

  4. [LeetCode]SetMatrix Zero

    题目说明 Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. c ...

  5. java.util.Collection源码分析和深度讲解

    写在开头 java.util.Collection 作为Java开发最常用的接口之一,我们经常使用,今天我带大家一起研究一下Collection接口,希望对大家以后的编程以及系统设计能有所帮助,本文所 ...

  6. RabbitMQ 上手记录-part 1-基础概念

    RabbitMQ是什么,不用多介绍了,毕竟名声在那,江湖地位摆着,搜索引擎收录着.为什么突然去学习这个框架了,毕竟工作中没有用得上(说来也惭愧,工作中开发的项目没有使用这个框架).但是作为互联网分布式 ...

  7. JavaScript 作用域(Scope)详解

    先对需要用到的名词解释一下,再通过例子深入理解 一.什么是作用域(Scope) [[scope]]:每个javascript函数都是一个对象,对象中有些属性我们可以访问,但有些不可以,这些属性仅供ja ...

  8. BG.Hive - part1

    1. Hive架构 What is hive? Facebook,https://en.wikipedia.org/wiki/Apache_Hive a> 一种工具,可以通过SQL轻松的访问数据 ...

  9. Winform 常用的方法

    一,Winform 如何内嵌窗体 1,判断窗体中是否以还有内嵌窗体 private void ClosePreForm() { foreach (Control item in this.spCont ...

  10. [日常] nginx与HTTP cache

    去年的事,随便记记 =============================================================2017年12月11日 记录: nginx缓存:ngx_h ...