setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*

为什么80%的码农都做不了架构师?>>>   hot3.png

一、先搞清楚mirrors,mirror,mirrorOf 简单点来说,repository就是个仓库。maven里有两种仓库,本地仓库和远程仓库。远程仓库相当于公共的仓库,大家都能看到。本地仓库是你本地的一个山寨版,只有你看的到,主要起缓存作用。当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。如果有则直接返回,否则会向远程仓库请求,并做缓存。你也可以把你做的东西上传到本地仓库给你本地自己用,或上传到远程仓库,供大家使用。远程仓库可以在工程的pom.xml文件里通过repositories、repository指定。如果没指定,就会去maven的安装目录找setting.xml的mirror、mirrorOf,如果没有设置,默认就会把下面这地方做远程仓库,即默认会到http://repo1.maven.org/maven2这个地方去请求插件和依赖包。

 
   
    false 
   
  central 
  Maven Repository Switchboard 
  http://repo1.maven.org/maven2 
 

本地仓库默认在你本地的用户目录下的.m2/repository目录下。
mirror就是镜像,主要提供一个方便地切换远程仓库地址的途径。比如,上班的时候在公司,用电信的网络,连的是电信的仓库。回到家后,是网通的网络,我想连网通的仓库,就可以通过mirror配置,统一把我工程里的仓库地址都改成联通的,而不用到具体工程配置文件里一个一个地改地址。 mirror的配置在settings.xml里。如:

 
   
    UK 
    UK Central 
    http://uk.maven.org/maven2 
    central 
   
 

这样的话,就会给上面id为central的远程仓库做了个镜像。以后向central这个仓库发的请求都会发到http://uk.maven.org/maven2而不是http://repo1.maven.org/maven2了。central里是要替代的仓库的id,这里就是会代替central的。如果填*,就会替代所有仓库。

二、经典示例如下:


 
  tomcat7
  tomcat
  tomcat
 
   
      nexus-releases  
      admin  
      admin123
   
    
  
  
     
      public_repo   
      nexus-releases   
      http://192.168.1.21:8081/nexus/content/groups/bigdata/
    
    
    
      plugin_repo   
      nexus-plugin   
      http://repo.maven.apache.org/maven2   
    
  
  
   
  nexus  
    
     
     nexus-releases  
     http://nexus-releases  
     true  
     true  
      
  
    
     
        nexus-plugin  
        http://plugin_repo  
        true  
        true  
   
  
  
  
    
      nexus  
  

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地址(代表替换默认的)

   
  public_repo   
  *   
  http://192.168.1.21:8081/nexus/content/groups/bigdata/

参考:
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的关系关联*)