maven mirror

2019/01/14 17:52
阅读数 47

镜像是为了提供更快的服务

 

编辑settings.xml配置中央仓库镜像:

1
2
3
4
5
6
7
8
9
10
11
12
< settings >  
   ...  
   < mirrors >  
     < mirror >  
       < id >maven.net.cn</ id >  
       < name >one of the central mirrors in china</ name >  
       < url >http://maven.net.cn/content/groups/public/</ url >  
       < mirrorOf >central</ mirrorOf >  
     </ mirror >  
   </ mirrors >  
   ...  
</ settings >

该例中,<mirrorOf>的值为central,表示该配置为中央仓库的镜像,任何对于中央仓库的请求都会转至该镜像,用户也可以使用同样的方法配置其他仓库的镜像。

另外三个元素id,name,url与一般仓库配置无异,表示该镜像仓库的唯一标识符、名称以及地址。类似地,如果该镜像需认证,也可以基于该id配置仓库认证。

 

任何需要的构件都可以从私服获得,私服就是所有仓库的镜像。这时,可以配置这样的一个镜像,如例: 

 

1
2
3
4
5
6
7
8
9
10
11
12
< settings >  
   ...  
   < mirrors >  
     < mirror >  
       < id >internal-repository</ id >  
       < name >Internal Repository Manager</ name >  
       < url >http://192.168.1.100/maven2</ url >  
       < mirrorOf >*</ mirrorOf >  
     </ mirror >  
   </ mirrors >  
   ...  
</ settings >

 

该例中<mirrorOf>的值为星号,表示该配置是所有Maven仓库的镜像,任何对于远程仓库的请求都会被转至http://192.168.1.100/maven2/

如果该镜像仓库需要认证,则配置一个Id为internal-repository的<server>即可。

 

为了满足一些复杂的需求,Maven还支持更高级的镜像配置:

 

1.<mirrorOf>*</mirrorOf>

匹配所有远程仓库。

 

2.<mirrorOf>external:*</mirrorOf>

匹配所有远程仓库,使用localhost的除外,使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。

 

3.<mirrorOf>repo1,repo2</mirrorOf>

匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。

 

4.<mirrorOf>*,!repo1</miiroOf>

匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。

需要注意的是,由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部