6、maven-仓库(Repository)

一、简介

所谓的仓库就是用于存放项目需要的jar包的。在我们的maven项目中其实并没有项目所需要的jar包,只在pom.xml文件中记录了jar的坐标。maven依赖管理通过jar的坐标去仓库中下载jar文件。
使用maven仓库的好处:能让多个项目共享一个仓库里的相同jar包

二、分类

本地仓库,

maven安装时候不会创建,第一次执行maven命令才创建。默认位置:用户目录/.m2/repository/

远程仓库

  1. 中央仓库:默认的远程仓库。
  2. 私有仓库:局域网内的仓库。可以理解为自己公司的仓库,也叫Nexus私服。
  3. 镜像仓库:其他公开的资源仓库 例如国内的阿里云,jboss,jcenter 仓库等

示意图

image

三、Maven 依赖搜索顺序

当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:

  • **步骤 1: ** 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。
  • **步骤 2: ** 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行步骤 4,如果找到了则下载到本地仓库中已被将来引用。
  • **步骤 3: ** 如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
  • **步骤 4: ** 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库已被将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。

四、镜像(Mirror)

概要

Mirror表示的是两个Repository之间的关系,在maven配置文件(setting.xml)里配置了

Mirror相当于一个拦截器,它会拦截maven对远程仓库的相关请求,把请求里的远程仓库地址,重定向到mirror里配置的地址。

声明


  
    ...
  

作用

配置两个Repository之间的镜像关系,一般是出于访问速度和下载速度考虑。

注意

需要注意的是,由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。

你可能感兴趣的:(6、maven-仓库(Repository))