Maven 的仓库

  • 本地仓库
    • 相当于缓存,工程第一次会从远程仓库(互联网)去下载 jar 包,将 jar 包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找
  • 中央仓库
  • 远程仓库
    • 在公司内部架设一台私服,其它公司架设一台仓库,对外公开。

下载 jar 包缓慢的问题

img

一般来说,不管是我们之前手动去下载 jar 包,或者后续在Maven中央仓库下载 jar 包,都可能因为一些下载地址在国外,导致下载缓慢的情况,这就影响到我们构建项目的效率了。

那该怎么解决呢??

可以使用缓存。

使用 本地仓库 作为 本地 jar 包下载的缓存

img

那么在第一次下载的 jar 包的过程还是比较缓慢的,由于第一次下载完毕之后,就会将 jar 包保存在本地仓库。那么第二次开始,再次下载使用该 jar 包的话,效率就会提升。

但是,本地仓库并没有解决第一次从 maven中央仓库 下载 jar 包缓慢的问题。又该怎么解决呢?

可以配置阿里云仓库,提供国内开发人员下载 jar 包

img

为了解决第一次从国外下载 jar 包缓慢的问题,阿里云将中央仓库的 jar 包复制下载。并在国内提供远程仓库服务,提供国内开发者下载,从而解决第一次下载效率低的问题。

  1. 打开 apache-maven-版本号\conf\settings.xml

    img

  2. 找到 <mirrors></mirrors> 标签,在其中配置阿里云镜像

    1
    2
    3
    4
    5
    6
    7
    8
    <mirrors>
    <mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
    </mirrors>

    使用此 maven 的配置作为版本控制,都会从阿里云的仓库中下载代码,速度贼快

    当然,这个远程仓库我们也可以在自己的公司内部中搭建的哦!

Maven 的坐标

Maven 的一个核心的作用就是管理项目的依赖,引入我们所需的各种 jar 包等。为了能自动化的解析任何一个 Java 构件,Maven 必须将这些 Jar 包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。坐标的定义元素如下

groupId 项目组织唯一的标识符,实际对应 JAVA 的包的结构 (一般写公司的组织名称 com.alibaba )

artifactId 项目的名称

version 定义项目的当前版本

访问Maven的中央仓库

访问 Maven中央仓库

img

可以看到包含了非常多的 jar 包。

并且从 com.alibaba 的路径下可以找到很多 阿里巴巴 的项目。而这个 com.alibaba 就是公司的组织名称。

img

通过 组织名 + 项目名 + 版本号,就可以定位需要的 jar 包

img

在项目中配置 jar 包的引入,只需要在 pom.xml 中配置 jar 包的 组织名 + 项目名 + 版本号 就行了。

例如:要引入druid,只需要在pom.xml配置文件中配置引入druid的坐标就好啦💋

1
2
3
4
5
6
7
8
9
<dependecies>
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>

</dependecies>

但是这里有个问题,我们一般都 记不住 (不记) 这些 jar 包的 组织名 + 项目名 + 版本号 的信息。

所以我们就可以用 Google 搜索引擎来搜索 maven中央仓库,然后在 maven 中央仓库来搜索 jar 包的坐标信息

img

然后我们就可以在 maven 中央仓库搜索我们想要的 jar 包坐标啦

img

点击进入项目名

img

选择需要的版本号

img

Ctrl + C maven 的坐标信息

img

然后就可以在 pom.xml 文件中 Ctrl + V