生命周期和依赖一样,是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. Android_读取元素的数据

    在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>.<application> .<servi ...

  2. Linux用户权限规范 /etc/sudoers文件解释

    # User privilege specification root ALL=(ALL) ALL # Members of the admin group may gain root privile ...

  3. 玩转mongodb(四):细说插入、更新、删除和查询

    插入: 使用insert或save方法想目标集合插入一个文档: db.person.insert({"name":"ryan","age": ...

  4. elasticsearch(一):JAVA api操作

    1.创建一个mavan项目,项目的以来配置如下. <?xml version="1.0" encoding="UTF-8"?> <projec ...

  5. 数据库初识--从MySQL 出发

    要学Web 开发,也得先对数据库有所了解呀.数据库分门别类,多种多样,目前我选择了 MySQL . 看了 MySQL,觉得数据库处理也不是很难,主要就是一些对数据的处理,MySQL 主要就是一些命令的 ...

  6. 阿里云提示ECS服务器存在漏洞处理方法

    1.阿里云提供生成修复命令,但是这个只提供给企业版,即收费的: 2.自己手动修复的话, 采用软件升级一般都可以解决.除了提示带kernel的高危漏洞的,其他的不需要重启实例即可修复. 有kernel的 ...

  7. C#比较两个字符串的相似度【转】

    原文地址:http://www.2cto.com/kf/201202/121170.html 我们在做数据系统的时候,经常会用到模糊搜索,但是,数据库提供的模糊搜索并不具备按照相关度进行排序的功能. ...

  8. WebApi使用swagger ui自动生成接口文档

    之前就写到.最近正在使用webapi.这里介绍一个实用的东西swageer ui现在开发都是前后端分开.我们这里是给前端提供api.有时候对于一个api的描述,并不想专门写一份文档.很浪费时间.swa ...

  9. JS中的事件冒泡——总结

    一. 有话要说 事件冒泡这个话题已经被园子里的朋友说透了,已经没什么要讲的了,但是由于呢我这边有个小问题刚好跟这个事件冒泡有关,就突然性想写个总结:一方面是给自己增加印象,另一方面给园子的新手们,提供 ...

  10. [HTML5] Canvas绘制简单图片

    获取Image对象,new出来 定义Image对象的src属性,参数:图片路径 定义Image对象的onload方法,调用context对象的drawImage()方法,参数:Image对象,x坐标, ...