关于mirror与repository

最后更新:2023-09-29 10:01:28 | 状态:未完成

mirror是指maven配置文件setting.xml中配置的镜像,如

<settings>
	<mirrors> 
		<mirror>
			<id>aliyun</id>
			<name>aliyun maven</name>
			<mirrorOf>*</mirrorOf>   
			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		</mirror> 
	</mirrors> 
</settings>
repository是项目中pom.xml下配置的仓库,如
<project>	
	<repositories>
		<repository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
</project>

在没有配置镜像的情况下项目会从repository中配置的url服务器下载依赖
如果配置的镜,注意这里的mirrorOf是指当前镜像要代理哪些仓库,也就是说依赖不再从仓库配置的url上下载,而从镜像的url上下载.
mirrorOf我们经常配置是*是指代理所有的仓库,但有许多jar我们这个镜像上可以没有。所以配置成*会导致下载失败
mirrorOf的配置方式
*
    匹配所有远程仓库。
external:*
    匹配所有远程仓库,使用localhost的除外,使用file:// 协议的除外。也就是说,匹配所有不在本机上的远程仓库。
repo1,repo2
    匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
*,!repo1
    匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。

这里的repo1是指在pom中配置的repository.id
如上面配置的 ossrh 注意Maven自带的中央仓库使用的id为central,如果其他仓库声明也使用该id,就会覆盖中央仓库的配置。



最近更新 搜索 提交