浅谈Maven仓库

217 阅读1分钟

什么是 Maven 仓库

  • Maven 仓库存储依赖的地方,体现形式就是本地的一个目录。
  • 仓库中不仅存放依赖,而且管理着每个依赖的唯一标识(坐标),Java 项目凭坐标获取依赖。

仓库分类

仓库分类如下:

graph TD
Maven仓库 --> 本地仓库
Maven仓库 --> 远程仓库

远程仓库 --> 中央仓库
远程仓库 --> 公共仓库
远程仓库 --> 私服

本地仓库

即在 settings.xml 中配置的目录。

使用过了的依赖都会自动存储在本地仓库中,后续可以复用。

远程仓库

中央仓库

  • Maven 中央仓库是由 Maven 社区提供的仓库,不用任何配置,Maven 中内置了中央仓库的地址。

    其中包含了绝大多数流行的开源 Java 构件。

  • mvnrepository.com/ 可以搜索需要的依赖的相关信息(仓库搜索服务)

    repo.maven.apache.org/maven2/ 中央仓库地址

公共仓库

  • 除中央仓库之外,还有其他远程仓库。 比如 aliyun 仓库(maven.aliyun.com/nexus/conte…
  • 中央仓库在国外,下载依赖速度过慢,所以都会配置一个国内的公共仓库替代中央仓库。
<!--setting.xml中添加如下配置-->
<mirrors>
	<mirror>
        <id>aliyun</id>  
        <!-- 中心仓库的 mirror(镜像) -->
        <mirrorOf>central</mirrorOf>    
        <name>Nexus aliyun</name>
        <!-- aliyun仓库地址 以后所有要指向中心仓库的请求,都会指向aliyun仓库-->
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
    </mirror>
</mirrors>

私服

公司范围内共享的仓库,不对外开放,采用局域网的方式下载。

可以通过 Nexus 来创建、管理一个私服。

依赖下载流程

当需要依赖时,会从仓库中去查找,优先顺序为:

本地仓库 > 私服(如果配置了的话) > 公共仓库(如果配置了的话) > 中央仓库