生命周期和依赖一样,是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. 【Express系列】第4篇——使用session

    session 在 web 应用中使用很普遍,不过在 node 上面,要用 session 还真得折腾一番才行. 从加入中间件,到 session 的写入.清除,当时是遇到了不少坑的. 当然也可能是我 ...

  2. CRF两个例子的理解

    概率计算例子: 预测例子:

  3. neo4j 查询

    match (p: Node {name:"城关镇"}) return p p 代表的是一个变量,Node为插入neo4j时节点类型,name后面加节点的名称

  4. SpringBoot入门 (二) 属性文件读取

    在上一篇中介绍了在idea中创建springboot工程及使用web工程输出“helloworld”到前端页面,本文学习在springboot工程中读取属性文件中的属性值. 一 自定义属性 在appl ...

  5. rails 过滤掉所有的html标签 strip_tags

      strip_tags(html) Strips all HTML tags from the html, including comments. This usesthe html-scanner ...

  6. C# 数组中的 indexOf 方法

    var array=['REG','2018','2018']; array.indexOf(‘REG’) // 0 array.indexOf(‘R’) // -1 array.indexOf(’2 ...

  7. CentOS普通用户没有sudo权限

    sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等.这样不仅减少了root用户的登录 和管理时间,同样也提高了安全 ...

  8. Emgucv(二)Emgucv和Aforge录制视频

    一.Emgucv录制视频 Emgucv中的Capture类可以完成视频文件的读取,利用EmguCV播放视频的原理是:将视频看作图片,用capture获取抓取通道,通过不断的调用{frame = cap ...

  9. 二十一、curator recipes之TreeCache

    简介 curator的TreeCache允许对某个路径的数据和路径变更以及其下所有子孙节点的数据和路径变更进行监听. 官方文档:http://curator.apache.org/curator-re ...

  10. Android Studio开发笔记

    工欲善其事,必先利其器. 来分享下一些tips吧. android studio优化 我的习惯是从visual studio沿袭过来的,所以快捷键都是参照VS改过来的. 设置调优 不打开上次打开的工程 ...