Maven:mirror和repository 区别

1 Repository(仓库)windows

1.1 Maven仓库主要有2种:缓存

  • remote repository:至关于公共的仓库,你们都能访问到,通常能够用URL的形式访问网络

  • local repository:存放在本地磁盘的一个文件夹,例如,windows上默认是C:\Users\{用户名}\.m2\repository目录maven

1.2 Remote Repository主要有3种:编码

  • 中央仓库:http://repo1.maven.org/maven2/ spa

  • 私服:内网自建的maven repository,其URL是一个内部网址 .net

  • 其余公共仓库:其余能够互联网公共访问maven repository,例如 jboss repository等插件

 

repository里存放的都是各类jar包和maven插件。当向仓库请求插件或依赖的时候,会先检查local repository,若是local repository有则直接返回,不然会向remote repository请求,并缓存到local repository。也能够把作的东西放到本地仓库,仅供本地使用;或上传到远程仓库,供你们使用。 server

 

2 Mirrorxml

mirror至关于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。

2.1 没有配置mirror:

2.2 配置mirror:

此时,B Repository被称为A Repository的镜像。

若是仓库X能够提供仓库Y存储的全部内容,那么就能够认为X是Y的一个镜像。换句话说,任何一个能够从仓库Y得到的构件,都胡够从它的镜像中获取。

2.3 <mirrorOf></mirrorOf> 

<mirrorOf></mirrorOf>标签里面放置的是要被镜像的Repository ID。为了知足一些复杂的需求,Maven还支持更高级的镜像配置: 

  • <mirrorOf>*</mirrorOf> 

            匹配全部远程仓库。 

  • <mirrorOf>repo1,repo2</mirrorOf> 

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

  • <mirrorOf>*,!repo1</miiroOf> 

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


3 Repository与Mirror

3.1 定义

其实,mirror表示的是两个Repository之间的关系,在maven配置文件(setting.xml)里配置了<mirrors><mirror>..........</mirror></mirrors>,即定义了两个Repository之间的镜像关系。

3.2 目的

配置两个Repository之间的镜像关系,通常是出于访问速度和下载速度考虑。

例如, 有一个项目,须要在公司和住所都编码,并在项目pom.xml配置了A Maven库。在公司,是电信网络,访问A库很快,因此maven管理依赖和插件都从A库下载;在住所,是网通网络,访问A库很慢,可是访问B库很快。这时,在住所的setting.xml里,只要配置一下<mirrors><mirror>....</mirror></mirrors>,让B库成为A库的mirror,便可不用更改项目pom.xml里对于A库的相关配置。

若是该镜像仓库须要认证,则配置setting.xml中的<server></server>便可。

3.3  注意

须要注意的是,因为镜像仓库彻底屏蔽了被镜像仓库,当镜像仓库不稳定或者中止服务的时候,Maven仍将没法访问被镜像仓库,于是将没法下载构件。

 

4 私服

私服是一种特殊的远程Maven仓库,它是架设在局域网内的仓库服务,私服通常被配置为互联网远程仓库的镜像,供局域网内的Maven用户使用。

当Maven须要下载构件的时候,先向私服请求,若是私服上不存在该构件,则从外部的远程仓库下载,同时缓存在私服之上,而后为Maven下载请求提供下载服务,另外,对于自定义或第三方的jar能够从本地上传到私服,供局域网内其余maven用户使用。

优势主要有:

  1. 节省外网宽带

  2. 加速Maven构建

  3. 部署第三方构件

  4. 提升稳定性、加强控制:缘由是外网不稳定

  5. 下降中央仓库的负荷:缘由是中央仓库访问量太大

 

PS:Maven仓库示意图

 

   转自:   https://my.oschina.net/sunchp/blog/100634

相关文章
相关标签/搜索