假如我们有一个Maven工程叫做demo,在demo这个项目中并没有jar包,而只有jar包的坐标,当我们启动demo的时候,Maven会根据坐标去仓库中找对应的jar包。那么在安装完Maven之后,仓库在什么位置呢?
我们可以在Maven的安装目录打开conf文件夹中的settings.xml文件
可以看到默认仓库的目录是在系统盘用户文件夹中的.m2/repository中,也就是说在启动Maven工程的时候,它会默认去这个目录下找jar包,这个目录就叫做本地仓库。
假如在本地仓库中没有找到对应的jar包,那么在电脑联网状态下,它会去中央仓库直接下载jar包到本地仓库,因为在中央仓库中几乎放置了所有开源的jar包。如果没有联网,那肯定就会报错了,因为它找不到与坐标对应的jar包。
公司中为了在没联网的状态下开发,也为了公司内部自己使用的一些jar包能够放在一个统一的地方,那么这个就叫做远程仓库,也可以叫做私服。只要保证自己的电脑和远程仓库所在的电脑处于同一局域网下,就可以直接通过远程仓库下载jar包;假如远程仓库中没有对应的jar包,那么远程仓库就会去中央仓库下载jar包,除此之外,远程仓库还可以通过本地仓库上传的方式来获取jar包,也就是说远程仓库中的jar包,一部分是从本地仓库上传过来的,还有一部分就是从中央仓库下载来的。
总结:
仓库分为三类:本地仓库、远程仓库(私服)、中央仓库
彼此关系:项目启动后,会从本地仓库获取jar包,如果本地仓库没有,在电脑联网的情况下会去中央仓库下载;如果公司存在远程仓库(私服),在本地仓库没有的情况下会先到远程仓库中获取,如果远程仓库中没有,那要么就从本地仓库上传,要么就从中央仓库下载。
附加:
如果想要修改本地仓库的默认位置,那么就打开安装目录下conf文件夹中的settings.xml文件,将下图中的那一行拷贝出来,再设置成相应路径就行了。