Maven 仓库私服镜像加载顺序笔记

MAVEN 仓库加载顺序

一、如果未配置有 mirrorOf * 的镜像仓库按照下面顺序获取jar

1 、查找本地仓库
2 、查找全局repository仓库配置并且按配置文件编辑倒序查找

【如果配置多个全局私服仓库,就算其中一个找到jar也会继续执行其他全局私服仓库下载操作,是否存在覆盖关系无法验证;如果全局有配置的情况下,未找到jar直接抛错,不会去项目配置的私有仓库下载资源】

3 、查找项目的repository仓库配置

【如果全局仓库找到jar,还会继续下载项目配置的私有仓库资源,是否存在覆盖关系无法验证;如果全局仓库无法找到jar,直接抛错,不会继续下载项目私服仓库配置】

4 、查找中央仓库,如果没有配置mirror 就默认中央仓库地址 https://repo.maven.apache.org/maven2
5 、查找中央仓库,如果配置了mirror并且配置多个mirrorOf 是central 只会获取第一个配置进行下载jar

二、如果配置有 mirrorOf * 的镜像仓库

 <mirrors>
         <mirror>
            <id>xx-repository</id>
            <name>xxx</name>
            <mirrorOf>*</mirrorOf>
            <url>xxxxx</url>
        </mirror>
  </mirrors>

则忽略上述规则,只从此仓库获取jar包。

1.<mirrorOf>*</mirrorOf>匹配所有远程仓库。
2.<mirrorOf>external:*</mirrorOf>匹配所有远程仓库,使用localhost的除外,使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。
3.<mirrorOf>repo1,repo2</mirrorOf>匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
4.<mirrorOf>*,!repo1</miiroOf>匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。

三、个人总结

总体来说,根据实验,得出以下个人想法:

1、本地仓库永远是第一个被查找的对象。

2、本地仓库找不到了,他会判断maven是否配置了<mirrorOf>*</mirrorOf>的镜像,如果是则从这里下载,不是则往下走。

3、判断是否存在私服配置,不管是maven settings.xml全局配置还是项目的pom私有配置,如果有则优先全局而后是项目私有,都会下载一遍jar【更正,取决于私服相关配置和启用条件】,是否存在覆盖关系无法验证。若都是启用状态则全局配置按配置文件倒序排优先级,找不到挨个往上找,但如果全局下不到jar就直接抛错了,不会继续去项目pom配置的私服下载。

4、查找中央仓库是否配置镜像,有走镜像,无走默认镜像。

以上仅个人测试得出,不对之处望指正。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值