mirrorOf常见的几种配置如下
1.*
2.repo3
3.repo1,repo2,*,!repo3
4.external:*
第二个例子只配置了一个repo3,这个镜像只能匹配id是repo3的库,该库会使用repo3的镜像访问。这里说重点了,即使还存在一个*的,这里会先查找完全相同的存储库标识符匹配的镜像,如果找到了,就用匹配的,这里就是repo3,这点可以放心。如果找不到,那就去根据其他的mirrorOf查找去,查找到一个就使用。这里需要注意的是,如果存在多个重复的mirrorOf,只会用排名靠前的第一个(按照配置顺序来)。如果一个都没有,最后就会用默认的maven*库。
maven下载jar包的流程如下:
maven首先会去本地仓库找相关的依赖jar,如果没有,假使配置了私服,那么第二步就会去私服上下载依赖jar。如果私服这条路走了,还是没有下载到相关jar,那么这时候就会去*仓库下载,在*仓库下载的时候,会根据镜像的配置对其jar进行备份缓存。下一次再次访问*仓库的时候,就会被镜像拦截,先从镜像地址获取jar(降低*仓库的压力)。
maven仓库分为本地和远程仓库:
maven本地仓库,有个默认的位置,就是用户目录下的.m2/repository,如果要更改本地仓库的位置,那就设置setting.xml的
<localRepository>C:\Users\hcss\.m2\repository</localRepository>(黑体字内容可以修改为其他盘符目录)
远程仓库一般来说,主要包括三种:*仓库、私服、其他公共库。
*仓库是默认的远程仓库,maven在安装的时候,自带*仓库的配置,*仓库包含了绝大多数流行的开源java构件、源码等,一般java项目所依赖的构件(其实就是jar包)都可以在这里下载。
私服是一种比较特殊的远程仓库,它是架设在局域网内的仓库服务,代理广域网上的远程仓库。当maven需要下载jar包的时候,从私服请求,如果私服不存在该jar包,则从远程仓库下载。