一、之前的配置 之前maven本地的setting.xml的仓库配置,都是直接设置mirror节点
1 2 3 4 5 6 7 8 |
<mirrors> <mirror> <id>aliyun</id> <name>aliyun</name> <mirrorOf>central</mirrorOf> <url>https://maven.aliyun.com/repository/central</url> </mirror> </mirrors> |
当多个仓库是就想到再加个mirror节点,但是这样不行 二、当前的配置 正确的配置需要再profiles节点下配置多个profile,配置完成后还需要通过activeProfiles子节点激活。 1、配置profiles:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<!-- 多仓库配置 --> <profiles> <!--内网配置--> <profile> <id>maven</id> <repositories> <repository> <id>maven</id> <url>http://xxx/repository/maven-public/</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>https://maven.aliyun.com/repository/central</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> </profile> </profiles> |
2、通过配置activeProfiles子节点激活
1 2 3 4 5 |
<!--配置 activeProfiles 子节点激活--> <activeProfiles> <activeProfile>maven</activeProfile> <activeProfile>aliyun</activeProfile> </activeProfiles> |
如需配置更多,可以查看官方文档: https://maven.apache.org/settings.html from:https://www.shuzhiduo.com/A/x9J2YVaKz6/
View Detailsmaven项目使用的仓库一共有如下几种方式: 中央仓库,这是默认的仓库 镜像仓库,通过 sttings.xml 中的 settings.mirrors.mirror 配置 全局profile仓库,通过 settings.xml 中的 settings.repositories.repository 配置 项目仓库,通过 pom.xml 中的 project.repositories.repository 配置 项目profile仓库,通过 pom.xml 中的 project.profiles.profile.repositories.repository 配置 本地仓库 搜索顺序如下: local_repo > settings_profile_repo > pom_profile_repo > pom_repositories > settings_mirror > central ================ 查询顺序 现在maven的查询顺序为: 首先在本地资源库中查找依赖,若不存在,则进入下一步,否则,退出; 然后在 远程仓库(私服) 中查找依赖,若不存在,则进入下一步,否则,退出; 最后在 中央仓库 中查找依赖,若不存在,则提示错误信息,退出。 ================ 三个仓库: 本地仓库:本地的一个文件夹,用来存放所有的jar包,由自己维护; 远程仓库(或私服):由公司或单位创建的一个仓库,由公司维护; 中央仓库:互联网上的仓库,由Maven团队维护; ========= maven的仓库只有两大类: 1.本地仓库 2.远程仓库,在远程仓库中又分成了3种: 2.1 中央仓库 2.2 私服 2.3 其它公共库 参看链接:https://www.cnblogs.com/YuyuanNo1/p/12938161.html 二、MAVEN 仓库加载顺序 2.1如果未配置有 mirrorOf * 的镜像仓库按照下面顺序获取jar 1 、查找本地仓库 2 、查找全局repository仓库配置并且按配置文件编辑倒序查找 【如果配置多个全局私服仓库,就算其中一个找到jar也会继续执行其他全局私服仓库下载操作,是否存在覆盖关系无法验证;如果全局有配置的情况下,未找到jar直接抛错,不会去项目配置的私有仓库下载资源】 3 、查找项目的repository仓库配置 【如果全局仓库找到jar,还会继续下载项目配置的私有仓库资源,是否存在覆盖关系无法验证;如果全局仓库无法找到jar,直接抛错,不会继续下载项目私服仓库配置】 4 、查找中央仓库,如果没有配置mirror 就默认中央仓库地址 https://repo.maven.apache.org/maven2 5 、查找中央仓库,如果配置了mirror并且配置多个mirrorOf 是central 只会获取第一个配置进行下载jar 2.2如果配置有 mirrorOf * 的镜像仓库
1 2 3 4 5 6 7 8 |
<mirrors> <mirror> <id>xx-repository</id> <name>xxx</name> <mirrorOf>*</mirrorOf> <url>xxxxx</url> </mirror> </mirrors> |
[…]
View Details