微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Maven解析2-生命周期详解

前言

maven官网:

Maven – Welcome to Apache Maven

菜鸟教程:

Maven 教程 | 菜鸟教程 (runoob.com)

Maven仓库:

Maven Repository: Search/Browse/Explore (mvnrepository.com)

 

Maven官网定义:

 

生命周期与阶段

MAVEN认以下三个标准的生命周期,同一个生命周期中的阶段(阶段代表了生命周期的特殊步骤)是有先后顺序的,并且后面的阶段依赖于前面的阶段:

下面列出了default、clean和site生命周期的所有阶段,它们按照在下表中定义的顺序执行的。当执行某个阶段,先执行其之前的所有阶段,然后执行该阶段。用连字符命名的阶段(pre-*、post-或process-)通常不会直接从命令行调用。它们履行的职责主要是生成一些中间产物等等。

1、clean  负责清理项目 含3个阶段

2、default 负责项目的构建、发布  含23个阶段

先了解几个重要的阶段:

validate 验证项目是正确的,所有必要的信息都是可用的
compile 编译项目源代码
test 使用单元测试框架测试编译后的源代码
package 获取已编译的代码,并将其打包为可发行的格式,例如JAR。
verify 获取已编译的代码,并将其打包为可发行的格式,例如JAR。
install 将包安装到本地仓库,供本地项目使用
deploy 将包发布到远程仓库(remote repository),方便其他开发人员和项目共享。

 

 

 

3、site 负责生成项目站点,即api文档信息网站  含4个阶段

 

 

 

如何运行生命周期中的阶段?
在执行MAVEN命令时,mvn命令之后使用的参数便是MAVEN的各个阶段。
mvn 阶段名

①. mvn compile:认执行deault生命周期的compile之前的所有阶段(含compile阶段),共7个阶段。
②. mvn clean package:认执行clean生命周期的clean之前的所有阶段(含clean阶段)和default生命周期package之前的所有阶段(含package阶段),共2 + 17个阶段。

总结:

认情况下 mvn install 和 mvn clean install 的执行流程是完全不一样的(对install插件重新配置和定义的除外)。不同一套的生命周期之间是相互独立的,其中的阶段并不会相互影响。

 

内置插件
关于内置插件相关可以参考: (37条消息) MAVEN简介_cloneme01的博客-CSDN博客_maven 发布时间

 

如何运行插件
可使用“插件名:目标名”的形式直接运行某插件的某个目标。
mvn dependency:copy-dependencies:认执行了dependency插件copy-dependencies目标。

阶段和插件目标可以同时使用:
mvn clean dependency:copy-dependencies package:认执行clean生命周期的clean之前的所有阶段(含clean阶段)、dependency插件copy-dependencies目标、default生命周期package之前的所有阶段(含package阶段)。

插件仓库
关于项目依赖构件的仓库详解可以参照: (37条消息) MAVEN仓库<repositories>详解_cloneme01的博客-CSDN博客_maven repositories标签

与项目依赖构件一样,插件同样基于坐标存储在MAVEN仓库中,插件仓库使用pluginRepositories标签进行定义。MAVEN内置的插件仓库如下:

<pluginRepositories>
   <pluginRepository>
       <id>central</id>
       <name>Maven Plugin Repository</name>
       <url>http://repo1.maven.org/maven2</url>
       <layout>default</layout>
       <snapshots>
           <enabled>false</enabled>
       </snapshots>
       <releases>
           <updatePolicy>never</updatePolicy>
       </releases>
   </pluginRepository>
</pluginRepositories>

一般情况下中央仓库包含了常用的插件,无需再配置其他的插件仓库。当项目使用的插件无法在中央仓库找到,或者自己编写了插件,这个时候可以在pom.xml或者settings.xml中加入其他的插件仓库配置。

 

插件仓库的请求顺序
项目根据以下顺序获取项目需要的插件
本地仓库  》》》 中央仓库(MAVEN缺省的远程插件仓库)  》》》 远程仓库

原文地址:https://www.cnblogs.com/chch213/p/16304058.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


前言 此种方式已过时,不再推荐,当下推荐方式:自我救赎 → 利用 IDEA 和 Spring Boot 搭建 SSM 本文旨在利用maven搭建ssm环境,而关于maven的具体内容,大家可以去阅读《Maven 实战》。其实园内这方面文章已有不少,那么为什么我还要重复造轮子呢?我只是想记录自己的实践
前言 项目中用到了maven,而且用到的内容不像利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)用的那么简单 maven的核心是 pom.xml,那么我们就来看看那些不同的地方 给我印象最深的就是如下四个元素:modules、parent、propert
开心一刻 今天去幼儿园接小侄女,路上聊起了天 小侄女:小叔,今天我吃东西被老师发现了 我:老师说了什么 小侄女:她说拿出来,跟小朋友一起分享 我:那你拿出来了吗 小侄女一脸可怜的看向我,说道:没有,我没有那么多鼻屎 SPI 概念 SPI 全称&#160;Service Provider Interf
本篇文章和大家了解一下怎么搭建maven私有仓库。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。在本篇文章中,我们将介绍如何搭建一个Maven...
今天小编给大家分享的是如何解决Maven依赖冲突,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。目...
这篇文章主要介绍了Maven仓库分类的优先级是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Maven仓库分类的优先级是什么文...
本篇内容主要讲解“Maven怎么实现自己的starter依赖”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Maven怎
本篇内容主要讲解“maven不能下载oraclejdbc驱动的问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大...
这篇文章主要介绍了怎么使用maven基本命令打包包名的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用maven基本命令打包包...
本篇内容介绍了“maven中profile如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧...