什么是Maven仓库?
首先我们来说一下,什么是maven的仓库,以及仓库的作用
- 什么是仓库?
maven仓库就是一个存放JAR文件的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖JAR包,这节省了磁盘资源也方便了管理。每一个Jar包文件都有自己的坐标,我们在pom根据坐标就可以从仓库中下载对应的jar包。 - 仓库的分类?
maven的仓库分为两种:
1.本地仓库: 本地电脑上的仓库,一般默认在${user.home}/.m2/repository位置,在setting.xml文件配置如下代码段,意思是C:\Users\SnailMann.m2\repository为Maven本地仓库的绝对路径
<!-- better use default local repository -->
<localRepository>C:\Users\SnailMann\.m2\repository</localRepository>
2.远程仓库: 远程服务器上的仓库,就是不在本地的仓库。可以使自己的仓库,公司的仓库或则是maven的中央仓库。在pom.xml配置如下代码段,则是配置了阿里云的远程仓库
<!--阿里云远程仓库-->
<repositories>
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
- 区别好中央仓库和其他远程仓库的区别?
1.中央仓库:
就是Maven为全世界程序员免费提供的公共远程仓库。是默认的仓库,不需要配置。坐标Id为central
2.其他的远程仓库:
可以说是一个游戏上的私服,而中央仓库就是官服。比如说自己公司的远程仓库,或则是阿里云的远程仓库。
如果你问,为什么有了中央仓库了,还需要远程仓库?因为有时候你自己写的一些Jar包,并没有上传到Maven的中央仓库时,中央仓库并没有你这个Jar包,而公司上的人都需要用到这个Jar包,公司就需要一个私服,用于存放公司内部使用的Jar包。当然这只是目的之一。
仓库总结
总体而言,仓库分为两种:
本地仓库
远程仓库
本地仓库是远程仓库的相对克隆版。就是当你在pom.xml中配置了某些jar包的坐标时,maven就会根据坐标从远程仓库中下载Jar包放到本地仓库中。
Maven依赖仓库的检索顺序:本地仓库
->中央仓库
->其他远程仓库
先从本地仓库中寻找,没有再到中央仓库寻找,然后再到其他远程仓库寻找
什么是镜像?
镜像就是一个远程仓库的一个映射仓库,在国内来说,意义上相当于代理的作用。比如中央仓库因为服务器在国外,又因为某些不可描述的原因,所以国内开发人员从中央仓库中下载的依赖包会因为各种各样的网络因素导致错误或则下载十分缓慢。所以这时候镜像的作用的显现出来了。
可以说,镜像就是国外公共仓库的网络加速器,也可以说镜像是国外仓库在国内的版本。
- 镜像的使用方法:
在maven的conf目录下,找到setting.xml。找到Mirrors节点,填入以下代码段,便可以为中央仓库添加阿里云的镜像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
mirrorOf
的意思是将ID为central
的远程仓库添加阿里云的镜像。如过要为其他远程仓库添加镜像则修改mirrorOf
里面的仓库id即可。如果是*
,则是为所有的远程仓库都添加该镜像
镜像的原理是,当你为中央仓库添加了镜像,Maven访问中央仓库的时候回自动切换到镜像的url。