这次为大家介绍Maven仓库的种类以及各种仓库之间的关系,假如现在这是一个Maven工程,那么我们都知道Maven工程中并没有放置jar包,它放置的只是jar包的坐标。当我们要启动一个Maven工程的时候,Maven项目会通过本地jar包的坐标,去仓库中找对应的jar包。
那么安装完Maven之后,它在什么地方给我们设置了一个仓库呢?
可以找到Maven的安装目录,这里边有一个conf文件夹,进入里边有一个setting.xml文件。打开文件,我们找到
Default: ${user.home}/.m2/repository
这是一段注释里的说明,这里就说明了Maven安装完后,默认的仓库路径,会在我们系统盘用户目录下面,直接我有为创建一个.m2文件夹,再往里边创建一个repository文件夹,来作为我们默认的本地仓库的位置。
注:上边说的不够严谨,maven的本地仓库,在安装maven后并不会创建,它是在第一次执行maven命令的时候才被创建,并且在该文件夹下存储我们从远程仓库下载的jar包资源。
也就是说,当我们启动一个web工程的时候,它默认会去系统盘找本地仓库,这个仓库叫本地仓库,他会去这里边找jar包。
假如是刚刚安装完Maven,那么本地仓库里边是没有jar包的。可是这个时候如果我们的电脑是可以联网的话,它会根据配置的jar包坐标,自己找到一个叫中央仓库的地方直接自动下载jar包。
也就是说我们要启动一个Maven工程,他永远先通过jar包的坐标,去本地仓库找jar包,如果本地仓库没有jar包,他会在联网状态下去中央仓库下载。那么如果没有联网他就会直接报错,因为他找不到他所需要的jar包。中央仓库这里边放置了几乎所有开源的jar包。Maven会按照我们的配置按需下载,因为我们实际开发中根本就用不了这么多jar包。
那么在公司中为了在不联网的情况下可以开发,也为了维护好公司自己内部项目所需要的jar包,可以直接放在一个统一的地方,会在创建一个仓库,这个仓库叫远程仓库,在公司中也经常有一个别名叫私服。就是说公司中常常说的私服就是指的远程仓库。
在公司中我们只要确保自己的电脑和远程仓库在同一个局域网,就可以直接通过局域网从远程仓库下载jar包。假如远程仓库没有我们所需要jar包,那么远程仓库会直接从中央仓库下载。
当然远程仓库也可以通过本地仓库上传的方式获取jar包,也就是说远程仓库中的jar包,有一部分是本地仓库上传上来的,有另外一部分是从中央仓库下载下来的。
我们来总结一下,仓库分三类分别是:
本地仓库
远程仓库,当然也叫私服
中央仓库
那么这三类仓库的关系是在默认情况下启动一个Maven工程会从本地仓库找jar包,如果本地没有再联往状态下,会从中央仓库下载jar包。
在公司中启动的web工程会从本地仓库找jar包,本地没有的情况下会去私服找jar包,如果私服也没有,它可以从中央仓库下载,也可以从本地上传。
然后在画幅图总结一下: