0
点赞
收藏
分享

微信扫一扫

Maven相关的概念 - Maven仓库和坐标

2. Maven相关的概念 - Maven仓库和坐标

1.目标

  • 能够理解Maven仓库的作用

2.路径

  1. Maven的仓库
  2. Maven的坐标

3.讲解

3.1Maven的仓库

仓库名称

作用

本地仓库

相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。

中央仓库

仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:https://repo1.maven.org/maven2/

远程仓库

在公司内部架设一台私服,其它公司架设一台仓库,对外公开。

3.1.1. 常见开发存在下载 jar 包缓慢的问题

Maven相关的概念 - Maven仓库和坐标_java

image-20201212232744545

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

那么怎么解决呢?

答案:可以使用缓存。

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

Maven相关的概念 - Maven仓库和坐标_java_02

image-20201212233208788

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

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

3.1.3 在国内假设远程仓库服务(例如:阿里云仓库),提供国内开发人员下载 jar 包

Maven相关的概念 - Maven仓库和坐标_java_03

image-20201212233806645

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

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

3.2 Maven的坐标

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

  • groupId:项目组织唯一的标识符,实际对应JAVA的包的结构 (一般写公司的组织名称 eg:com.alibaba)
  • artifactId: 项目的名称
  • version:定义项目的当前版本
3.2.1 访问查看Maven的中央仓库如下:

访问 https://repo1.maven.org/maven2/

Maven相关的概念 - Maven仓库和坐标_spring_04

image-20201212234422802

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

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

Maven相关的概念 - Maven仓库和坐标_编程语言_05

image-20201212234603996

3.2.2 可以在 阿里巴巴 库中的 druid 库文件

Maven相关的概念 - Maven仓库和坐标_java_06

image-20201212234912385

在 ​​com.alibaba​​​ 路径下,搜索 ​​druid​​ ,我们就可以找到了。

Maven相关的概念 - Maven仓库和坐标_spring_07

image-20201212235005915

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

Maven相关的概念 - Maven仓库和坐标_java_08

image-20201212235155520

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

例如:要引入druid,只需要在pom.xml配置文件中配置引入druid的坐标即可:

<dependecies>
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependecies>

但是这里存在一个很大的问题,我们一般都记不住这些 jar 包的 组织名 + 项目名 + 版本号 的信息。我们可以从哪里去获取呢?

3.2.5 可以百度 或者 国外 maven 坐标搜索 网站 来 搜索 jar包 的 坐标信息
  1. 访问 maven坐标搜索网站的地址: https://mvnrepository.com/

Maven相关的概念 - Maven仓库和坐标_项目管理_09

image-20201212235918452

  1. 点击进入项目名中,如下:

Maven相关的概念 - Maven仓库和坐标_编程语言_10

image-20201212235949090

  1. 选择需要的版本号

Maven相关的概念 - Maven仓库和坐标_项目管理_11

image-20201213000021905

4.拷贝可以使用的 maven 坐标地址

Maven相关的概念 - Maven仓库和坐标_spring_12

image-20201213000103251

4.小结

  1. 仓库(本地仓库,中央仓库,远程仓库(私服))
  • 如果有, 就直接获得使用
  • 如果没有, 从中央仓库找, 自动的下载到本地仓库
  • 先从本地仓库找
  • 通过坐标从仓库里面找到对应的jar使用
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
  1. maven坐标搜索网站的地址: https://mvnrepository.com/
  2. 以后工作中maven坐标是直接拷贝


举报

相关推荐

0 条评论