1.0 一张图带你看懂maven仓库
(1) 本地仓库
本地仓库,windows默认路径是~.m2\repository,linux默认路径是/home/root/.m2/repository
可以修改本地仓库的路径,在~/.m2/settings.xml配置文件里,可以设置:
(2)远程仓库
如果本地仓库没有某个依赖,那么maven就会从远程仓库去下载,默认就是从中央仓库去下载
(3)中央仓库
maven有一个自带的超级pom.xml文件,里面配置了一个默认的中央仓库:
所以如果你不做任何配置,那么当你声明了某个依赖之后,就是如果本地仓库没有,就会去maven自带配置的这个中央仓库去拉取,就是http://repo1.maven.org/maven2这个地址。
(4)私服
一般正经公司都会自己假设一个maven私服,也就是在公司局域网内部,假设一个服务器,上面放一个maven私有仓库。
因为很多公司的服务器是不允许访问外网的,只能访问局域网,为了更好的安全性起见。而且依赖下载的速度也很快。
此时的话,核心的思路,就是在本地配置远程仓库为私服,如果本地仓库没有,先去私服找,如果私服没有,再去中央仓库找。在中央仓库找到后,先缓存在私服中,然后再缓存在本地仓库中。
此外,假设自己的私服,另外一个意义,就在于说,自己公司内部的一些发布包,可以放到私服上,供公司内的项目组之间使用。
(5)其他远程仓库
有些依赖可能在中央仓库没有,或者中央仓库的速度太慢,此时可能会用其他的一些远程仓库,比如jboss的仓库。java.net,google,codehaus,jboss,还有一些其他公司自己搞的Maven仓库,有少数的依赖包可能在中央仓库里找不到,只在其他仓库里。
那么私服除了连接中央仓库,还可以连接其他远程仓库。
(6)镜像仓库
比如说,像中央仓库在国外,很慢的,直接从中央仓库下载的话,是很慢的
所以一般国内的一些大型的互联网公司,阿里云,会搞一个镜像仓库,完全跟中央仓库一模一样的,代理了中央仓库所有的请求
你可以直接从阿里云镜像仓库去请求,如果有就直接返回了,国内网络的速度很快的,上百倍;阿里云如果自己没有,就会去从国外的中央仓库去下载
你就知道了什么啊,pom.xml里面声明了各种依赖之后,是怎么去找的,仓库,仓库的布局,多层仓库(本地、私服、镜像、中央、其他)。

