为什么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的关系关联*相关推荐

  1. 更改setting文件的mirror_setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*...

    一.先搞清楚mirrors,mirror,mirrorOf 简单点来说,repository就是个仓库.maven里有两种仓库,本地仓库和远程仓库.远程仓库相当于公共的仓库,大家都能看到.本地仓库是你 ...

  2. 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 ...

  3. build.xml java打包_配置pom.xml用maven打包java工程的方法(推荐)

    下面小编就为大家带来一篇配置pom.xml用maven打包java工程的方法(推荐).小编觉得挺不错的, 现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 最近由于项目需要,研究了一下mav ...

  4. java+pom.xml+是什么_java – 父pom.xml的包装无效,必须是“pom”,而是“ear”

    这个简单的设置是一个很好的开始. . ├── pom.xml ├── services | ├── pom.xml | └── src | └── main | └── java | └── com ...

  5. eclipse 打开pom.xml文件很慢 设置pom.xml打开方式

    1.打开Window>Preferences>Maven>User Interface勾选"open XML page in the POM editor by defau ...

  6. (转)eclipse 打开pom.xml文件很慢 设置pom.xml打开方式

    http://blog.csdn.net/wobendiankun/article/details/24832119 1.打开Window>Preferences>Maven>Use ...

  7. Maven之pom.xml与setting.xml配置文件详解

    一.Maven相关问题 安装jar到本地仓库 mvn install:install-file -Dfile=jar路径 -DgroupId=组id -DartifactId=组件id -Dversi ...

  8. Maven的配置文件pom.xml

    简介: 什么是POM? POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml.在Maven中,当谈到Project ...

  9. Maven的pom.xml文件详解------The Basics

    转载自  Maven的pom.xml文件详解------The Basics Maven坐标 GroupId.artifactId和version构成了Maven的坐标(groupId和version ...

最新文章

  1. mint ui tabbar选中后怎么改变icon图标_UI全书(下)读后梳理:iPhone设计规范和Material Design规范...
  2. ElasticSearch下载安装教程详解【7.10版本】
  3. 以链表为载体学习C++(4)
  4. php时间戳转换日期24,php时间戳怎么转换回日期
  5. Javascript屏蔽IE和Firefox浏览器默认按键响应(快捷键功能)
  6. 六种方法帮你解决模型过拟合问题
  7. 太火了,这些牛逼的Java代码技巧,肯定能让你目瞪口呆!
  8. 190702每日一句 孤独之前是迷茫,孤独之后是成长
  9. java8 stream中 forEach和 forEachOrdered 当parallel时候执行过程安全问题深入理解
  10. 计算机流程图代表判断的是什么意思,算法流程图符号含义有哪些?用奇偶数判断算法流程图理解...
  11. 服务器系统可以玩英雄联盟吗,用云服务器可以玩英雄联盟吗
  12. wpf XDG000与XDG0012错误
  13. “联盟鱼”-国外广告联盟lead项目最新玩法介绍
  14. Unit 2, TCP header recap
  15. 苹果手机充电口接触不良怎么办_手机充电插口松动!声音变小!手机死机!怎么办?...
  16. C/C++语言二维数组的传参方法总结
  17. Mathcad使用数学表达式
  18. Python 个性计算器(可不断加挂功能模块实现个性化)
  19. 使用Mahout搭建推荐系统之入门篇-Mahout实战
  20. 我国电子计算机诞生于,我国第一台电子计算机诞生于哪一年.doc

热门文章

  1. Listview 多个ViewHolder实现
  2. 多线程Java Socket编程示例(转)
  3. 安全 - MySQL 出现严重的密码安全漏洞,许多系统存在风险
  4. 程序员的奋斗史(八)——懒人造就方法
  5. Android新手之旅(10) 嵌套布局
  6. linux 特殊符号(转)
  7. 重构了一波代码,聊聊后端也聊聊游戏后端
  8. HB限时领Deponia: The Complete Journey
  9. C标准库stdlib.h概况
  10. PHP整理笔记八正则表达式