maven可以在某个位置统一存储所有maven项目共享的构件,这个统一的位置就是仓库。
对于maven来说,仓库只分为两类:本地仓库和远程仓库。当maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。
中央仓库是maven核心自带的远程仓库,它包含了绝大部分开源的构件。
私服是另一种特殊的远程仓库,为了节省宽带和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。内部的项目还能部署到私服上供其他项目使用。
- 本地仓库
默认情况下,不管是在windows还是linux上,每个用户在自己的用户目录下都有一个路径名为.m2/repository/的仓库目录。
自定义可以编辑文件.m2/settings.xml,设置localRepository元素的值为想要的仓库地址。例如:
<settings>
<localRepository>
d:\java\repository\
</localRepository>
</settings>
- 远程仓库
对于maven来说,每个用户只有一个本地仓库,但可以配置访问很多远程仓库。
- 中央仓库
中央仓库就是一个默认的远程仓库,maven的安装文件自带了中央仓库的配置。
- 私服
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的maven用户使用。当maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为maven的下载请求提供服务。此外,一些无法从外部仓库下载到的构件也能从本地上传到私服上供大家使用。
私服可以帮助你:
- 节省自己的外网宽带。
- 加速maven构建。
- 部署第三方构件。
- 提高稳定性,增强控制。
- 降低中央仓库的负荷。