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仓库和坐标
image-20201212232744545

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

那么怎么解决呢?

答案:可以使用缓存。

3.1.2 使用 本地仓库 作为 本地jar包下载的缓存
Maven相关的概念 - Maven仓库和坐标
image-20201212233208788

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

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

3.1.3 在国内假设远程仓库服务(例如:阿里云仓库),提供国内开发人员下载 jar 包
Maven相关的概念 - Maven仓库和坐标
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仓库和坐标
image-20201212234422802

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

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

Maven相关的概念 - Maven仓库和坐标
image-20201212234603996
3.2.2 可以在 阿里巴巴 库中的 druid 库文件
Maven相关的概念 - Maven仓库和坐标
image-20201212234912385

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

Maven相关的概念 - Maven仓库和坐标
image-20201212235005915
3.2.3 通过 组织名 + 项目名 + 版本号,就可以定位需要的 jar 包
Maven相关的概念 - Maven仓库和坐标
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仓库和坐标
image-20201212235918452
  1. 点击进入项目名中,如下:
Maven相关的概念 - Maven仓库和坐标
image-20201212235949090
  1. 选择需要的版本号
Maven相关的概念 - Maven仓库和坐标
image-20201213000021905

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

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

4.小结

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


原文始发于微信公众号(海洋的渔夫):Maven相关的概念 – Maven仓库和坐标

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/33445.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!