关于maven配置私服地址无效问题

入职新公司,公司内网有内部搭建的maven私服,但是在本地maven的setting文件中配置上私服地址后,一直无法拉取私服的一些jar包。经过仔细的排查,发现问题出在之前配置的远程阿里云maven镜像上。

在maven的setting.xml文件中,mirror标签内配置镜像后,会拦截连接远程仓库的请求,从mirror配置的url地址中获取依赖。常见阿里云maven,如下图:关于maven配置私服地址无效问题_第1张图片
私服地址一般配置在setting文件中的 repository标签下,如下图:
关于maven配置私服地址无效问题_第2张图片

问题主要出在mirror标签下的mirrorOf属性上,该属性的配置存在以下四种情况

  1. *
    匹配所有远程仓库。
    此种情况下,repository中配置的私服失效。
  2. external:*
    匹配所有远程仓库,除了本地仓库和基于文件协议的仓库。
    此种情况下,repository中配置的私服失效。
  3. repo1,repo2
    匹配用逗号分隔的多个仓库(基于ID)
    此种情况下,没有匹配私服仓库时,私服仓库有效。
  4. *,!repo1
    匹配除了repo1以外的所有仓库(感叹号排除)
    此种情况下,排除私服仓库ID,私服有效。

我开始mirrorOf标签配置的值是*,会拦截所有连接远程仓库的请求,直接导致配置的私服地址失效,无法拉取私服上的jar包与相关资源。后修改mirrorOf的值为central,表示会覆盖掉maven默认的中央仓库,但不会拦截所有连接远程仓库的请求,私服地址有效,实测问题解决。

参考地址:maven官网镜像设置指南

你可能感兴趣的:(关于maven配置私服地址无效问题)