maven镜像仓库配置(多镜像自动切换)

大家在使用IDEA的时候会遇到这样的一个问题,就是在下载源代码和资源文档的时候,有些镜像仓库里面没有源代码和资源文档,然后会导致下载失败。
这时候就需要多个镜像仓库的地址了。

附上我自己的配置文件:

  <mirrors>
    
    
   <mirror>
       <id>alimavenid>
       <name>aliyun mavenname>
       <url>http://maven.aliyun.com/nexus/content/groups/public/url>
       <mirrorOf>centralmirrorOf>
   mirror>

   <mirror>
       <id>centralid>
       <name>Maven Repository Switchboardname>
       <url>http://repo1.maven.apache.org/maven2/url>
       <mirrorOf>*mirrorOf>
   mirror>
   
   <mirror>
       <id>sprintioid>
       <mirrorOf>centralmirrorOf>
       <name>Human Readable Name for this Mirror.name>
       <url>https://repo.spring.io/libs-snapshot/url>
       <mirrorOf>*mirrorOf>
   mirror>
   
   
   <mirror>
       <id>googleid>
       <name>google mavenname>
       <url>https://maven.google.com/url>
       <mirrorOf>*mirrorOf>
   mirror>


    <mirror>
      <id>maven-default-http-blockerid>
      <mirrorOf>external:http:*mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.name>
      <url>http://0.0.0.0/url>
      <blocked>trueblocked>
    mirror>
  mirrors>

mirror标签中有个 mirrorOf标签,
注意: 值为center,表示当前镜像为远程中央仓库的镜像

mirrorOf可以理解“为某个仓库(repository)的做镜像”,填写的是repostoryId。
”*“ 的意思就是匹配所有的仓库(repository)。
相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,	
重定向到mirror里配置的地址。apache-maven的settings.xml不做任何配置时是有默认的仓库的,这个仓库就是central仓库,默认值是https://repo.maven.apache.org/maven2/,我们可以配置mirrorOf=central只镜像默认的central仓库。如果你只配置了mirrorOf=”my-repo-id“没有配置central或*,那么请求maven会判断,首先在默认的central仓库https://repo.maven.apache.org/maven2/找依赖,如果找不到就去my-repo-id对应的仓库找,遍历所有仓库后找不到就报错。

你可能感兴趣的:(maven,java)