repository(仓库)
repository按照部署网络,分为2种类型:
①local repository:本地仓库,放在本地磁盘上的文件夹,例如:C:\Users\XXXX\.m2\repository;
②remote repository:远程仓库,必须通过互联网访问,一般用URL形式访问;
remote repository类型
主要有3种类型:
①中央仓库:https://repo1.maven.org/maven2/;
②私服:各个公司内网自建的maven repository;
③其他公共仓库:其他可以通过互联网公共访问的maven repository,例如:阿里的公共仓库;
当向仓库请求插件或者依赖时,先检查local repository,如果有则直接返回,否则再去remote repository请求,然后缓存到local repository;
mirror
其功能类似于一个拦截器filter,拦截对remote repository的相关请求,然后把请求重定向到mirror里配置的URL地址;
<mirrorOf/>标签
<mirrorOf/>标签用来配置被镜像的repository ID;<mirrorOf/>标签常用的例子有:
<mirrorOf>*<mirrorOf/>匹配所有远程仓库;
<mirrorOf>repo1,repo2<mirrorOf/>匹配仓库repo1和repo2,使用逗号分隔多个远程仓库;
<mirrorOf>*,!repo2<mirrorOf/>匹配所有远程仓库,repo2除外,这里使用感叹号将仓库repo2从匹配中移除;
总结
①mirror用来表示两个repository之间的关系;
②配置两个repository之间的镜像关系,一般是出于访问速度和下载速度考虑,如果该镜像仓库需要认证,则配置setting.xml中的<server></server>即可;
③由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件;