maven 配置mirror后,本地库与远端库冲突

settings.xml中主要包括以下元素:

  • localRepository
  • interavtiveMode
  • offline
  • pluginGroups
  • proxies
  • servers
  • mirrors
  • profiles
  • property
  • activeProfile
  • localRepository:表示Maven用来在本地储存信息的本地仓库的目录。默认是用户家目录下面的.m2/repository目录。
  • interactiveMode:表示是否使用交互模式,默认是true;如果设为false,那么当Maven需要用户进行输入的时候,它会使用一个默认值。
  • offline:表示是否离线,默认是false。这个属性表示在Maven进行项目编译和部署等操作时是否允许Maven进行联网来下载所需要的信息。
  • pluginGroups:在pluginGroups元素下面可以定义一系列的pluginGroup元素。表示当通过plugin的前缀来解析plugin的时候到哪里寻找。pluginGroup元素指定的是plugin的groupId。默认情况下,Maven会自动把org.apache.maven.plugins和org.codehaus.mojo添加到pluginGroups下。
  • proxies:其下面可以定义一系列的proxy子元素,表示Maven在进行联网时需要使用到的代理。当设置了多个代理的时候第一个标记active为true的代理将会被使用。
<proxies>  
  <proxy>  
      <id>xxx</id>  
      <active>true</active>  
      <protocol>http</protocol>  
      <username>用户名</username>  
      <password>密码</password>  
      <host>代理服务器地址</host>  
      <port>代理服务器的端口</port>  
      <nonProxyHosts>不使用代理的主机</nonProxyHosts>  
  </proxy>  
</proxies>

servers:其下面可以定义一系列的server子元素,表示当需要连接到一个远程服务器的时候需要使用到的验证方式。这主要有username/password和privateKey/passphrase这两种方式。以下是一个使用servers的示例:

<servers>  
  <server>  
    <id>id</id>  
    <username>用户名</username>  
    <password>密码</password>  
  </server>  
</servers>

mirrors:用于定义一系列的远程仓库的镜像。我们可以在pom中定义一个下载工件的时候所使用的远程仓库。但是有时候这个远程仓库会比较忙,所以这个时候人们就想着给它创建镜像以缓解远程仓库的压力,也就是说会把对远程仓库的请求转换到对其镜像地址的请求。每个远程仓库都会有一个id,这样我们就可以创建自己的mirror来关联到该仓库,那么以后需要从远程仓库下载工件的时候Maven就可以从我们定义好的mirror站点来下载,这可以很好的缓解我们远程仓库的压力。在我们定义的mirror中每个远程仓库都只能有一个mirror与它关联,也就是说你不能同时配置多个mirror的mirrorOf指向同一个repositoryId。 看以下是一个使用mirrors的例子:

<mirrors>  
    <mirror>  
      <id>mirrorId</id>  
      <mirrorOf>repositoryId</mirrorOf>  
      <name>定义一个容易看懂的名称 </name>  
      <url>http://my.repository.com/repo/path</url>  
    </mirror>  
</mirrors>

配置项

  • id:是用来区别mirror的,所有的mirror不能有相同的id
  • mirrorOf:用来表示该mirror是关联的哪一个仓库,其值为其关联仓库的id。当要同时关联多个仓库时,这多个仓库之间可以用逗号隔开;当要关联所有的仓库时,可以使用“”表示;当要关联除某一个仓库以外的其他所有仓库时,可以表示为“,!repositoryId”;当要关联不是localhost或用file请求的仓库时,可以表示为“external:*”。
  • url:表示该镜像的url。当Maven在建立系统的时候就会使用这个url来连接到我们的远程仓库。

 

 

待补充

原文地址:https://www.cnblogs.com/suanec/p/7205340.html