java plug机制_【maven实战】20-插件解析机制

插件仓库:与依赖构件一样,插件构件同样基于坐标存储在maven仓库中,在需要的时候maven会从本地仓库中查找插件,如果不存在则从远程仓库查找。找到插件后在下载到本地仓库使用。值得一提的是maven会区别对待依赖的远程仓库与插件的远程仓库。当maven需要的依赖在本地仓库不存在时,他会去所配置的远程仓库查找,可是当maven需要的插件在本地仓库不存在时他就不会去这些远程仓库查找。

不同于repositories及其repository子元素,插件的远程仓库使用pluginRepositories和pluginRepository配置。例如maven内置了如下的插件远程仓库配置,如下:

central

Central Repository

https://repo.maven.apache.org/maven2

default

false

never

这个默认插件仓库的地址就是中央仓库,他关闭了对SNAPSHOT的支持,以防止引入SNAPSHOT版本的插件而导致不稳定的构建。一般来说中央仓库所包含的插件完全能够满足我们的需要,因此也不需要配置其他的插件仓库。只有在很少的情况下,项目使用的插件无法在中央仓库找到,或者自己编写了插件,这个时候可以参考上述配置,在POM或者settings.xml中加入其他的插件仓库配置。

插件的默认groupId:在POM中配置插件的时候,如果该插件是maven的官方插件(groupId=org.apache.maven.plugins)就可以省略groupId配置,如下:

maven-compiler-plugin

2.1

1.5

1.5

maven-compiler-plugin

2.1

1.5

1.5

解析插件版本:同样是为了简化插件的配置和使用,在用户没有提供插件版本的情况下,maven会自动解析插件版本。首先maven在超级POM中为所有核心插件设定了版本,超级POM是所有maven项目的父POM,所有项目都继承这个超级POM的配置,因此即使用户不加任何配置,maven使用核心插件的时候他们的版本就已经确定了。这些插件包括maven-clean-plugin,maven-compiler-plugin,maven-surefire-plugin等。

解析插件前缀:上一节讲到mvn命令行支持使用插件前缀来简化插件的使用,现在解释maven如何根据插件前缀解析得到插件的坐标。插件前缀与groupId:artifactId是一一对应的,这种匹配关系存储在仓库元数据中。这里的仓库元数据为groupId/maven-metadata.xml,那么这里的groupId是什么呢?主要的插件都位于https://repo.maven.apache.org/maven2/org/apache/maven/plugins/和https://repository.codehaus.org/org/codehaus/mojo/,相应地maven在解析插件仓库元数据的时候,会默认使用apache.maven.plugins和org.codehaus.mojo两个groupId。也可以通过配置settings.xml让maven检查其他groupId上的插件仓库元数据,如下:

com.your.plugins

com.your.plugins

基于该配置maven就不会仅仅检查org/apache/maven/plugins/maven-metadata.xml和org/codehaus/mojo/maven-metadata.xml,还会检查com/your/plugins/maven-metadata.xml。

下面看一下插件仓库元数据的内容,如下:

Apache Maven Clean Plugin

clean

maven-clean-plugin

Apache Maven Compiler Plugin

compiler

maven-compiler-plugin

Apache Maven Dependency Plugin

dependency

maven-dependency-plugin

Apache Maven Clean Plugin

clean

maven-clean-plugin

Apache Maven Compiler Plugin

compiler

maven-compiler-plugin

Apache Maven Dependency Plugin

dependency

maven-dependency-plugin

上述内容是从中央仓库的org.apache.maven.plugins.groupId下插件仓库元数据中截取的一些片段,从这段数据中就能看到maven-clean-plugin的前缀为clean,maven-compiler-plugin的前缀为compiler,maven-dependency-plugin的前缀为dependency。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ie8浏览器自定义工具栏设置教程

ie8浏览器自定义工具栏设置教程 ie8浏览器自定义工具栏怎么设置?在使用IE8的网友知道,在安装IE8之后会发现IE8的工具栏中的按钮非常少,明显的不便于我们平时的上网操作。所以我们有必要根据自己的需求,把一些能够经常使用的按钮添加到工具栏…

java servlet 获取mac地址_Java开发网 - 请教大家几个关于servlet取ip和mac地址的问题~~!...

//Java获得CPU序列号和网卡Mac地址/*利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(String)接口,要用Runtime.getRuntime().exec(String[])这个接口,不然复杂命令的执行…

小城交通大转型!苏州金龙助力杭州建德公交开新格局

新安江畔,密林丛生,一辆辆绿色巴士穿梭而行,杭州市首款纯电动无站立位公交车正在试运行中。 12月19日,杭州建德,23辆苏州金龙海格牌6米无站立位新能源纯电动公交车正式交付建德市公共交通运输有限公司。自此&#xff…

手机搜狗浏览器怎么样

核心提示:手机搜狗浏览器怎么样 手机搜狗浏览器怎么样 搜狗浏览器安卓版,它是搜狗官方针对android平台上而最新推出的一款安卓手机浏览器,支持同步搜狗电脑浏览器收藏,清晰简洁,享家纯真,让你的手机上网更…

java虚拟机性能优化_死磕Java虚拟机-性能调优实战篇

Java命令分为如下三种1. 以java - 开头:标准参数2. 以java -X 开头:非标参数3. 以java -XX 开头:性能调优主要用这个开头的参数,但是无法找到相关参数的帮助文档,下面我教大家几个常用的命令-XX:UseSerialGC Seria…

让IE浏览器提示下载或直接打开word文档

核心提示:点击一个指向.doc类型的文件后,怎样不直接在IE里打开,而是弹出一个对话框提示用户想下载还是打开。让IE浏览器提示下载或直接打开word文档 点击一个指向.doc类型的文件后,怎样不直接在IE里打开,而是弹出一个…

2345王牌浏览器九宫格个性化设置

核心提示:2345王牌浏览器九宫格中的每个小窗体显示的网址,都可以进行个性化定制。 2345王牌浏览器九宫格中的每个小窗体显示的网址,都可以进行个性化定制。可以单击 2345王牌浏览器九宫格个性化设置 对某一网页进行编辑 。 可以修改你想要…

java volatile 原子性_Java中volatile不能保证原子性的证明

Java并发编程之验证volatile不能保证原子性通过系列文章的学习,凯哥已经介绍了volatile的三大特性。1:保证可见性 2:不保证原子性 3:保证顺序。那么怎么来验证可见性呢?本文凯哥(凯哥Java:kaigejava)将通过代码演示来证…

搜狐视频怎么清除应用缓存

今天继续给大家分享搜狐视频方面的内容。搜狐视频播放器是播放器家园网小编用过最好用的一款,在这里能够不同类型的电视剧和电影,都是采用了4K级高清画质,让你随时感受到电影级别的视觉盛宴!搜狐视频客户端支持边下载边观看,云同步…

mysql 漏洞如何修复_Mysql漏洞修复方法思路及注意事项

【系统环境】系统环境:Red Hat Enterprise Linux Server release 5.4 (Tikanga) 5.7.16 MySQL Community Server (GPL)【漏洞信息】漏洞信息报告,根据集团第三方软件扫描出对应数据库版本的漏洞信息,可以从DVE号跟当前数据库发布版本时间来判…

爱奇艺视频怎么联系在线人工客服?

爱奇艺视頻是一款非常好的视頻,播放器家园网小编在闲的无聊的情况下,便会应用爱奇艺看来视頻,坚信大家也会应用爱奇艺视頻看来视頻,我们在应用爱奇艺的情况下,便会碰到些难题,今日小编给你详细介绍下&#…

java callback 多线程_JAVA Callback效率测试

在最近的联网电商项目中,想要实现单个web容器内的支付请求,全部能够统一宏观上同步,实现粒度上面异步,找来找去,没有相关方面的框架或者方案,于是最后基于现实场景,打算使用Java callback 的多线…

腾讯视频下载格式_怎么下载腾讯视频

不管这个腾讯视频好用与否,都有一大批用户,本文播放器家园网小编分享腾讯视频下载格式_怎么下载腾讯视频。腾讯视频时刻为您推荐最新最火的视频,精彩不断随时观看。支持各种画质的下载,没网也能享受高视觉的享受,让生活…

腾讯视频下载官方_腾讯视频评论在哪

本文给大家整理了腾讯视频下载官方_腾讯视频评论在哪方面的内容。腾讯视频影音是一款界面轻松友好,功能全面完善,方便好用,绿色安全,完全免费的、专注视频播放的客户端软件,您可运行腾讯视频影音,在线享受腾…

java 复写_课程5.4之函数的复写(override)

本节课程将学习以下内容:函数的复写(override)使用super调用父类的成员函数函数的复写(override)复写(override),也被称为覆盖或者重写。在你对父类的成员方法不满意的时候,你可以在子类中复写这个方法,来写出符合自己要求的方法。…

mongodb与java连接_MongoDBJava连接

Java 连接MongoDB package mymaven;import java.net.UnknownHostException;import java.util.Set;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;imporJava 连接MongoDBp…

糖果浏览器和139邮箱巧妙应用:将网页文字一键发送到手机上

核心提示:我们有时需要将一些网页中的文字发送到手机上,如商务会谈前,将出行路线和目的地地址发送到手机上便于查看。但是每次都需要手动录入到手机上,费时费力。 我们有时需要将一些网页中的文字发送到手机上,如商务…

Java飞机大战敌机消失_Shoot 飞机大战,功能是子弹打在敌机上, 消失 且在内存中 , 小蜜蜂上同理 Games 游戏 247万源代码下载- www.pudn.com...

文件名称: Shoot下载 收藏√ [5 4 3 2 1 ]所属分类: Games开发工具: Java文件大小: 371 KB上传时间: 2015-12-01下载次数: 0提 供 者: 刘星详细说明:飞机大战,功能是子弹打在敌机上,子弹消失敌机消失且在内存中消失,打在小蜜…

UC浏览器云标签怎么用 UC浏览器云标签使用方法

核心提示:相信很多机友都会使用UC浏览器,但是其多个功能你们能了解多少? 下面小编就为大家介绍UC浏览器云标签使用方法吧! 1、打开【UC浏览器】,点击【多窗口】按钮,然后点击【云标签】;(如下图所示) 2、登陆微博、QQ等&#…

谷歌浏览器怎么设置主页教程

谷歌浏览器怎么设置主页教程 谷歌浏览器怎么设置主页?目前,在世界范围内谷歌浏览器成为了仅次于ie浏览器的第二大主流浏览器,那么,谷歌浏览器主页怎么设置呢?针对此问题,下文浏览器家园小编就为大家图文介绍一下xx谷歌浏览器设置…