maven-仓库
在maven中,任何一个依赖、插件或者项目构件的输出,就可以称之为构件。
在maven中,仓库是一个位置,这个位置是用来存放各种第三方构建的,所有maven项目可以共享这个仓库中的构件。
maven仓库能帮助我们管理构件(主要是jar包),它就是放置所有jar文件(jar、war、zip、pom等等)的地方。
仓库的分类
主要分为:
- 本地仓库
- 远程仓库:分为中央仓库、私服、其它远程库
当maven根据坐标寻找构件的时候,会首先查看本地仓库,如果本地仓库存在,则直接使用;如果本地库不存在,maven会去远程仓库中寻找,如果找到了,会将其下载到本地仓库中进行使用,如果本地和远程仓库都没有找到构件,maven会保存,构件只有在本地仓库中存在了,才能够被maven项目使用。
本地仓库
默认情况下,maven本地仓库默认地址是~/.m2/respository
目录(~
是指用户目录),这个默认可以在~/.m2/settings.xml
文件中进行修改:
<localRepository>本地仓库地址</localRepository>
当我们使用maven的时候,依赖的构件都会从远程仓库下载到本地仓库目录中。
maven的本地仓库,在安装maven后并不会创建,当我们执行第一条maven命令的时候本地仓库才会创建此时会从远程仓库下载构件到本地仓库给maven项目使用。
远程仓库
最开始我们使用maven的时候,本地仓库中的构件是空的,此时maven必须要提供一种功能,要能够从外部获取这些构件,这个外部就是所谓的远程仓库,远程仓库可以有多个,当本地仓库找不到构件时,可以去远程仓库找,然后放置到本地仓库中进行使用。
中央仓库
由于maven刚安装好的时候,本地仓库是空的,此时我们什么都没有配置,去执行maven命令的时候,我们会看到maven默认执行了一些下载操作,这个下载地址就是中央仓库的地址,这个地址是maven社区为我们提供的,是maven内置的一个默认的远程仓库地址,不需要用户去配置。
特点
- 中央仓库是由maven官方社区提供给大家使用的
- 不需要我们手动去配置,maven内部集成好了
- 使用中央仓库时,机器必须是联网状态,需要可以访问中央仓库地址
私服
为了节省带宽和加快下载速度,我们可以在局域网内部架设一台服务器,这台服务器起到一个代理的作用,maven访问这个服务器,把需要的构件返回给我们,如果这台服务器中没有需要的构件,那么这个代理服务器会去远程仓库中查找,然后将其先下载到代理服务器中,然后再返回给maven
好处
- 加速maven构件的下载速度
- 节省带宽
- 方便部署自己的构件以供他人使用
- 提高maven的稳定性,中央仓库需要本机能够访问外网,而如果使用私服,只需要可以访问内网的私服就可以了
其它远程仓库
中央仓库是在国外的,访问速度不是特别快,所以有很多大型公司自己搭建了maven仓库服务器,公开出来给其他开发者使用