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

您所在的位置:网站首页 maven仓库的优先级 maven多个仓库源配置及repositories和mirrors的配置及区别详解

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

2023-11-23 22:48| 来源: 网络整理| 查看: 265

maven仓库配置

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

repositories配置

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

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

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

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

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

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

mirror配置 alimaven aliyun maven central http://maven.aliyun.com/nexus/content/groups/public/

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

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

哪mirrorOf与mirrorOf有什么关联呢?

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

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

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3