maven多个仓库源配置及repositories和mirrors的配置及区别详解

2 篇文章 0 订阅

maven仓库配置

仓库优先级为:本地仓库(localRepositories) > profile中的repositories仓库 > POM > mirrors全局仓库

repositories配置

repositories指定jar包下载的地点,可以是多个。

repositories可以通过setting.xml方式配置,会对所有maven项目生效,也可只在本项目pom.xml中配置一个maven仓库标签来实现。

当在自己的maven项目的pom.xml中添加如下配置。

<repositories>
  <repository>
    <id>aliyun-releases</id>
    <name>阿里云仓库(name可以随便起)</name>
    <url>https://maven.aliyun.com/repository/public</url>
  </repository>
</repositories>

这时候,maven会优先采用这个配置,而不会去读setting.xml中的配置了。这样配置好后,maven就会自动从aliyun下载jar包了。

repositories标签下可以配置多个repository,如果我们配置了多个repository,maven会用哪个呢,答案是按出现顺序使用,如果第1个可用,就用第一个,如果不可用,就依次往下找,下面的2张图片可以说明这个问题。

mirror配置

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <!--mirrorOf的配置很重要后面会详细说明-->
  <mirrorOf>central</mirrorOf>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

如上配置,maven会读取setting.xml中配置的mirror作为jar包的下载地址。

为什么呢?
因设置的mirrorOf为<mirrorOf>central</mirrorOf>,如果<mirrorOf></mirrorOf>我随便设置一个参数,如<mirrorOf>abc</mirrorOf>,这时候我们配置的仓库就不起作用了,这是因为maven默认内置了如下一个仓库,这个默认仓库的id为central,当我们把mirrorOf设置为<mirrorOf>central</mirrorOf>时,maven就会查找有没有id为central的仓库,然后把id为central的仓库地址换成我们<mirror>标签配置的那个url,这样我们配置的mirror才会起作用。当然我们也可以把mirrorOf设置为<mirrorOf>*</mirrorOf>,表示所有仓库都使用我们配置的这个mirror作为jar包下载地址。

哪mirrorOf与mirrorOf有什么关联呢?

<repository>时<id>似乎也没什么用,确实是,如果你只是在pom.xml中配置个仓库,这个id是没什么用的,可以随便写。

其实这个id是配合上面讲的mirror一块使用的,还记得mirrorOf吗,我们配置mirrorOf为<mirrorOf>central</mirrorOf>是,mirror中的url会将默认的central仓库的url给覆盖了,所以这里的<repository>标签下的id是给mirrorOf用的。

当repository中的id与mirrorOf一致时,mirrorOf中的url就会覆盖repository中的url地址。

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时,需要同时考虑到repositoriesmirrors的配置
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值