maven仓库repositories和mirrors的配置及区别详解(轻松搞明白)

您所在的位置:网站首页 mvnrepository仓库怎么用 maven仓库repositories和mirrors的配置及区别详解(轻松搞明白)

maven仓库repositories和mirrors的配置及区别详解(轻松搞明白)

2023-11-24 00:56| 来源: 网络整理| 查看: 265

这篇文章主要介绍了maven仓库repositories和mirrors的配置及区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

maven仓库配置

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

通过mirror配置

如果仓库X可以提供仓库Y所有的内容,那么我们就可以认为X是Y的一个镜像,通俗点说,可以从Y获取的构件都可以从他的镜像中进行获取。可以采用镜像的方式配置远程仓库,镜像在settings.xml中进行配置,在setting.xml中的标签下加入如下子标签配置便配置了一个maven镜像。

1

2

3

4

5

6

7

  alimaven

  aliyun maven

  

  central

  http://maven.aliyun.com/nexus/content/groups/public/

添加如上配置后,maven会读取setting.xml中配置的mirror作为jar包的下载地址,我们以在项目中下载fastjson为例来看一下效果。

可以看到,配置了上面的mirror后,maven是从aliyun仓库下载的jar包,不配置的时候,默认从apache的maven中央仓库下载的jar包。

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

1

2

3

4

5

6

7

8

9

10

11

  

   central

   Central Repository

   https://repo.maven.apache.org/maven2

   default

   

    false

   

  

通过配置

通过setting.xml方式配置会对所有maven项目生效,如果只想在本项目中配置一个maven仓库,可以通过在pom.xml中配置标签来实现。在自己的maven项目的pom.xml中添加如下配置,就配置好了一个仓库。这时候,maven会优先采用这个配置,而不会去读setting.xml中的配置了。这样配置好后,maven就会自动从aliyun下载jar包了。

1

2

3

4

5

6

7

  

    aliyun-releases

    阿里云仓库(name可以随便起)

    https://maven.aliyun.com/repository/public

  

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

上面配置时似乎也没什么用,确实是,如果你只是在pom.xml中配置个仓库,这个id是没什么用的,可以随便写,其实这个id是配合上面讲的mirror一块使用的,还记得mirrorOf吗,我们配置mirrorOf为central是,mirror中的url就是central仓库的url给覆盖了,所以这里的标签下的id是给mirrorOf用的。

可以看下面一个例子,本来我们的abc-releases这个仓库是不可用的,因为根本就没有https://abc.def.com/repository/public/这个仓库,但是我们通过mirror配置,改变了id为abc-releases这个仓库的url,从而使用maven也可以从id为abc-releases这个仓库下载jar包了。当然这样配置也没只啥意义,只是为了方便理解repository和mirror之间的关系。

maven仓库配置的其他选项

1

2

3

4

5

6

7

8

9

10

11

12

13

  aliyun-releases

  https://maven.aliyun.com/repository/public

  

    true

  

  

    false

  

maven默认的内置仓库的配置位置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

  

   central

   Central Repository

   https://repo.maven.apache.org/maven2

   default

   

    false

   

  

到此这篇关于maven仓库repositories和mirrors的配置及区别详解的文章就介绍到这了,更多相关maven仓库repositories和mirrors配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

 

 

 

原文地址:https://www.jb51.net/article/190592.htm



【本文地址】


今日新闻


推荐新闻


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