参考视频
1.仓库
仓库分为两种:本地仓库和远程仓库。而远程仓库由分为私服和中央仓库。
-
本地仓库:顾名思义其保存在本地,通常来说,可以理解为一台电脑对应一个本地仓库。开发项目时,Maven会检索对应资源在本地仓库中是否存在,若不存在,则从私服或中央仓库中下载资源(取决于pom.xml中该资源的坐标)。
-
远程仓库:顾名思义,是一个云端的仓库。本地仓库的所有资源都需要从远程仓库中下载。远程仓库又可以细分为私服和中央仓库:
- 私服:作用相当于缓存。若所有开发者都直接从中央仓库获取资源,必定会造成网络拥塞,而私服就相当于缓存。私服先从中央仓库中获取所需资源,提供给本地仓库下载。一些不开源的资源通常也存于私服中,目的在于实现小范围共享(内部使用)。
- 中央仓库:收录了几乎世界上所有的jar包,供私服、本地仓库下载资源。
2.坐标
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
上述就是一个Maven坐标,用以描述所需资源的各种信息。
需要注意的是:Maven坐标的作用并不是指示该资源在中央仓库的位置。Maven在读取到坐标后,根据坐标信息优先在本地仓库中寻找资源,其次在私服中寻找,最后在中央仓库中寻找。
坐标的作用是:指明需要的资源是什么名字,隶属哪个公司,版本号是什么。
其主要组成有:
- groupId(组织Id):定义该资源隶属的组织名称,通常是域名反写,如
org.mybatis
。 - artifactId(项目Id):定义该资源的名称,通常是模块名字。
- version(版本号):定义该资源的版本
- packaging:定义该资源的打包方式