setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*
为什么80%的码农都做不了架构师?>>>
一、先搞清楚mirrors,mirror,mirrorOf 简单点来说,repository就是个仓库。maven里有两种仓库,本地仓库和远程仓库。远程仓库相当于公共的仓库,大家都能看到。本地仓库是你本地的一个山寨版,只有你看的到,主要起缓存作用。当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。如果有则直接返回,否则会向远程仓库请求,并做缓存。你也可以把你做的东西上传到本地仓库给你本地自己用,或上传到远程仓库,供大家使用。远程仓库可以在工程的pom.xml文件里通过repositories、repository指定。如果没指定,就会去maven的安装目录找setting.xml的mirror、mirrorOf,如果没有设置,默认就会把下面这地方做远程仓库,即默认会到http://repo1.maven.org/maven2这个地方去请求插件和依赖包。
<repository> <snapshots> <enabled>false</enabled> </snapshots> <id>central</id> <name>Maven Repository Switchboard</name> <url>http://repo1.maven.org/maven2</url>
</repository>
本地仓库默认在你本地的用户目录下的.m2/repository目录下。
mirror就是镜像,主要提供一个方便地切换远程仓库地址的途径。比如,上班的时候在公司,用电信的网络,连的是电信的仓库。回到家后,是网通的网络,我想连网通的仓库,就可以通过mirror配置,统一把我工程里的仓库地址都改成联通的,而不用到具体工程配置文件里一个一个地改地址。 mirror的配置在settings.xml里。如:
<mirrors> <mirror> <id>UK</id> <name>UK Central</name> <url>http://uk.maven.org/maven2</url> <mirrorOf>central</mirrorOf> </mirror>
</mirrors>
这样的话,就会给上面id为central的远程仓库做了个镜像。以后向central这个仓库发的请求都会发到http://uk.maven.org/maven2而不是http://repo1.maven.org/maven2了。<mirrorOf>central</mirrorOf>里是要替代的仓库的id,这里就是会代替central的。如果填*,就会替代所有仓库。
二、经典示例如下:
<servers><server><id>tomcat7</id><username>tomcat</username><password>tomcat</password></server><server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password><!--<password>123456</password>--></server></servers><mirrors><mirror> <id>public_repo</id> <mirrorOf>nexus-releases</mirrorOf> <url>http://192.168.1.21:8081/nexus/content/groups/bigdata/</url><!--<url>http://112.74.204.238:8081/nexus/content/groups/public</url> --> </mirror><mirror> <id>plugin_repo</id> <mirrorOf>nexus-plugin</mirrorOf> <url>http://repo.maven.apache.org/maven2</url> </mirror></mirrors><profiles><profile> <id>nexus</id> <repositories> <repository> <id>nexus-releases</id> <url>http://nexus-releases</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories><pluginRepositories> <pluginRepository> <id>nexus-plugin</id> <url>http://plugin_repo</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository></pluginRepositories></profile> </profiles><activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
activeProfiles中表示id:nexus的profile生效,nexus的profile又定义了2个repository,当id为nexus-releases的repository去下包时会找到mirrors(用mirrorOf中的值去关联),用对应的mirror的中配置的url来代替repository配置的url去下载包,这就是他们对应的关系了activeProfiles---》repository---》mirrors,用mirrors中的url代替repository的url。也可以使用简要配置,直接所有的东西都用私服地址来下载,那么mirrorOf应该配置成*(代表替换所有的)或者maven默认的repository地址(代表替换默认的)
<mirror> <id>public_repo</id> <mirrorOf>*</mirrorOf> <url>http://192.168.1.21:8081/nexus/content/groups/bigdata/</url>
</mirror>
参考:
Maven里面mirror元素和repository元素的作用
Maven settings配置中的mirrorOf
Maven系列二setting.xml 配置详解
maven setting.xml配置说明
转载于:https://my.oschina.net/cjun/blog/881766
setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*相关推荐
- 更改setting文件的mirror_setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*...
一.先搞清楚mirrors,mirror,mirrorOf 简单点来说,repository就是个仓库.maven里有两种仓库,本地仓库和远程仓库.远程仓库相当于公共的仓库,大家都能看到.本地仓库是你 ...
- nexus-3.6.0-02-unix.tar.gz安装(Centos下),maven setting.xml配置案例,项目root的pom.xml配置,parent-pom的pom.xml配置案例
1.下载nexus 进入:http://www.sonatype.org/nexus/downloads/ 说明: [OSS = Open Source Software,开源软件 – 免费] [FR ...
- build.xml java打包_配置pom.xml用maven打包java工程的方法(推荐)
下面小编就为大家带来一篇配置pom.xml用maven打包java工程的方法(推荐).小编觉得挺不错的, 现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 最近由于项目需要,研究了一下mav ...
- java+pom.xml+是什么_java – 父pom.xml的包装无效,必须是“pom”,而是“ear”
这个简单的设置是一个很好的开始. . ├── pom.xml ├── services | ├── pom.xml | └── src | └── main | └── java | └── com ...
- eclipse 打开pom.xml文件很慢 设置pom.xml打开方式
1.打开Window>Preferences>Maven>User Interface勾选"open XML page in the POM editor by defau ...
- (转)eclipse 打开pom.xml文件很慢 设置pom.xml打开方式
http://blog.csdn.net/wobendiankun/article/details/24832119 1.打开Window>Preferences>Maven>Use ...
- Maven之pom.xml与setting.xml配置文件详解
一.Maven相关问题 安装jar到本地仓库 mvn install:install-file -Dfile=jar路径 -DgroupId=组id -DartifactId=组件id -Dversi ...
- Maven的配置文件pom.xml
简介: 什么是POM? POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml.在Maven中,当谈到Project ...
- Maven的pom.xml文件详解------The Basics
转载自 Maven的pom.xml文件详解------The Basics Maven坐标 GroupId.artifactId和version构成了Maven的坐标(groupId和version ...
最新文章
- mint ui tabbar选中后怎么改变icon图标_UI全书(下)读后梳理:iPhone设计规范和Material Design规范...
- ElasticSearch下载安装教程详解【7.10版本】
- 以链表为载体学习C++(4)
- php时间戳转换日期24,php时间戳怎么转换回日期
- Javascript屏蔽IE和Firefox浏览器默认按键响应(快捷键功能)
- 六种方法帮你解决模型过拟合问题
- 太火了,这些牛逼的Java代码技巧,肯定能让你目瞪口呆!
- 190702每日一句 孤独之前是迷茫,孤独之后是成长
- java8 stream中 forEach和 forEachOrdered 当parallel时候执行过程安全问题深入理解
- 计算机流程图代表判断的是什么意思,算法流程图符号含义有哪些?用奇偶数判断算法流程图理解...
- 服务器系统可以玩英雄联盟吗,用云服务器可以玩英雄联盟吗
- wpf XDG000与XDG0012错误
- “联盟鱼”-国外广告联盟lead项目最新玩法介绍
- Unit 2, TCP header recap
- 苹果手机充电口接触不良怎么办_手机充电插口松动!声音变小!手机死机!怎么办?...
- C/C++语言二维数组的传参方法总结
- Mathcad使用数学表达式
- Python 个性计算器(可不断加挂功能模块实现个性化)
- 使用Mahout搭建推荐系统之入门篇-Mahout实战
- 我国电子计算机诞生于,我国第一台电子计算机诞生于哪一年.doc