maven仓库中心mirrors配置详解

一、repository

repository就是个仓库.

maven里有两种仓库,本地仓库和远程仓库。

远程仓库相当于公共的仓库,大家都能看到。

本地仓库是你本地的缓存副本,只有你看的到,主要起缓存作用。

当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。

如果有则直接返回,否则会向远程仓库请求,并被缓存到本地仓库。

远程仓库可以在工程的pom.xml文件里指定。

二、mirror

mirror就是镜像,主要提供一个方便地切换远程仓库地址的途径。

当maven需要到的依赖jar包不在本地仓库时, 就需要到远程仓库下载 .mirror可以拦截对远程仓库的请求 , 改变对目标仓库的下载地址.

<mirrors>
    <mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
  </mirrors>

此处指定多个mirrors镜像,镜像只会执行第一个位置mirror。

  • 属性
    1、id: 镜像的唯一标识;
    2、name: 名称描述;
    3、url: 地址;
    4、mirrorOf: 指定镜像规则,什么情况下从镜像仓库拉取。其中, *: 匹配所有,所有内容都从镜像拉取;

external:*: 除了本地缓存的所有从镜像仓库拉取;

repo,repo1: repo或者repo1,这里的repo指的仓库ID;

*,!repo1: 除了repo1的所有仓库;

三、多仓库配置

2、在pom.xml的repositories标签中可以配置

maven如果发现本地仓库没有的依赖都会尝试从远程仓库拉取,按顺序并发请求多个远程仓库

<project>
    <repositories>

    </repositories>
</project>
1、在settings.xml的节点下配置多个profile

在profiles节点下配置多个profile,而且配置之后要激活。

<profiles>
    <profile>
      <id>boundlessgeo</id> 
      <repositories>
        <repository>
          <id>boundlessgeo</id> 
          <url>https://repo.boundlessgeo.com/main/</url> 
          <releases>
            <enabled>true</enabled>
          </releases> 
          <snapshots>
            <enabled>true</enabled> 
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>aliyun</id> 
      <repositories>
        <repository>
          <id>aliyun</id> 
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
          <releases>
            <enabled>true</enabled>
          </releases> 
          <snapshots>
            <enabled>true</enabled> 
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile> 
    <profile>
      <id>maven-central</id> 
      <repositories>
        <repository>
          <id>maven-central</id> 
          <url>http://central.maven.org/maven2/</url> 
          <releases>
            <enabled>true</enabled>
          </releases> 
          <snapshots>
            <enabled>true</enabled> 
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
<profiles>

通过配置activeProfiles子节点激活:

<activeProfiles>
    <activeProfile>boundlessgeo</activeProfile>
    <activeProfile>aliyun</activeProfile>
    <activeProfile>maven-central</activeProfile>
</activeProfiles>
  • 注意(重要)
    当你的maven中的setting.xml配置文件里面关于mirror部分的<mirrorOf>配置为*的时候,pom里配的<repository>是不生效的。

总结
1、当你的项目拉取jar包时,大量的jar包来自于国内大型镜像,那就在mirror部分配上一个这个仓库地址,<mirrorOf>不要用*。如果还需要公司内部私服拉去jar,那就配置到<profiles>并且在<activeProfiles>里面激活配置,这里可以配置多个。
3、最后,如果只是某个项目需要拉去特定镜像仓库中的某些jar包,那就将其配置到项目根pom的 <repository>里。


链接:https://www.jianshu.com/p/a568133e29ea

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Maven是一个开源的构建管理工具,它能够自动化构建过程和依赖管理。其中,Maven仓库Maven的关键组成部分之一,用于存储各种构建依赖项,如Jar包、插件、依赖库等。在Maven中,有两个概念:仓库repositories和镜像mirrors,它们在Maven中的作用不同,下面我们将分别进行介绍。 Maven仓库repositories Maven仓库repositories是指Maven默认的依赖项存储区。在Maven的构建过程中,如果在本地计算机上没有找到所需的依赖项,Maven会从repositories中查找并下载。repositories有两种类型:本地仓库和远程仓库。 本地仓库是指Maven在本地计算机上缓存的依赖项存储区。当我们第一次构建项目时,Maven会自动在我们的本地仓库中创建一个默认位置,例如:~/.m2/repository。当我们需要依赖项时,Maven会首先在本地仓库中查找,如果找到,则直接使用本地仓库中的依赖项。如果本地仓库中没有找到,Maven会从远程仓库中查找。 远程仓库是指存储依赖项的远程服务器,我们可以将依赖项上传到远程仓库中,以供他人使用。Maven官方提供了一个默认的远程仓库Central Repository。当我们需要依赖项时,Maven会首先从本地仓库中查找,然后再从Central Repository中查找。 Maven默认使用的repositories中包含了Central Repository,也可以配置其他的repositories,以便于从其他的仓库中获取依赖项。 Maven镜像mirrors Maven镜像mirrors是指一个可以从其他地方复制数据的复制品。在Maven中,Mirrors是由Central Repository提供的一个特殊功能。使用Mirrors的主要目的是减少从Central Repository下载依赖项的时间。在国外,由于网络环境较好,所以使用Central Repository可以快速下载依赖项。但是,在国内如果直接访问Central Repository,由于网络原因,可能会导致下载速度非常慢,甚至是无法连接。 为了解决这个问题,Maven提供了Mirrors的功能,我们可以将Central Repository配置为一个镜像。这样,在使用Maven下载依赖项时,就会从配置的镜像中下载,而不是直接从Central Repository中下载。通过使用镜像,能够提高依赖项下载的速度,提高构建效率。 总结 Maven仓库repositories和镜像mirrors是Maven构建过程中的两个重要概念。repositories用于存储依赖项,包含本地仓库和远程仓库。而mirrors是借助Central Repository提供的功能,用于提高依赖项的下载速度。在配置Maven时,需要同时考虑到repositories和mirrors的配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烈火138

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值