Maven mirror、mirrorOf和repositories、repository的关联关系

概述

做项目打包的时候报了一个错:‘mirrors.mirror.mirrorOf’ for central is missing

对于central mirrorOf缺失,看了篇博文,它在pom中设置了repository,id和setting.xml中mirrorOf的id一致,那么也就在想了,是否在seeting.xml中设置了mirrorOf,在pom.xml中,也要设置,没错就是这样的,经过一番测试后,没有报错了

setting.xml文件
Maven mirror、mirrorOf和repositories、repository的关联关系_第1张图片

pom.xml文件
Maven mirror、mirrorOf和repositories、repository的关联关系_第2张图片

在pom.xml设置了repository后,可以不在setting.xml中设置mirror,但是在setting.xml中设置mirror必须要设置mirrorOf,并且在pom中设置repository

补充点知识点:

maven请求jar一般过程是,先从pom.xml中通过repository获取,如果pom.xml中没有配置repository,就会去maven的安装目录找setting.xml的mirror、mirrorOf

	<repository>
            <id>osgeo</id>
            <name>OSGeo Release Repository</name>
            <url>https://repo.osgeo.org/repository/release/</url>
            <snapshots><enabled>false</enabled></snapshots>
            <releases><enabled>true</enabled></releases>
	 </repository>
	<mirror>
          <id>osgeo-release</id>
          <name>OSGeo Repository</name>
          <url>https://repo.osgeo.org/repository/release/</url>
          <mirrorOf>osgeo</mirrorOf>
	</mirror>

如上配置,相当于给id为osgeo的repository(远程仓库),当请求url去下载jar包时,会去找mirrorOf值为osgeo的镜像,用对应的mirror的中配置的url来代替repository配置的url去下载包,所以以后向central这个仓库发的请求都会发到https://repo.osgeo.org/repository/release/而不是https://repo.osgeo.org/repository/release/了

有镜像走镜像

不知道为何,有时候不愿细读、细看博文,经过一个反复的过程又发现明明文章都说了,想着往后的日子里应该会将这些毛病改改

你可能感兴趣的:(maven)