Maven介绍

1、Maven的简单介绍

Maven是apache下的项目管理工具,它是由纯Java语言开发,可以帮助我们更方便的管理和构建Java项目。如下图所示,看完这个图先有个大概的印象,然后看一下下面的这几个关键东西的介绍,再回头看图就会清晰很多。

在这里插入图片描述

1.1、jar包

在我们平时写代码时,会经常听见说是要下载jar包什么的,jar包,Java Archive File,顾名思义,它的应用是与 Java 息息相关的,是 Java 的一种文档格式,是一种与平台无关的文件格式,可将多个文件合成一个文件,类似于我们的zip包,简单来说就是把写好的很多代码(不止一个java文件),打包好,就形成了一个jar包。
我们的maven就是来管理这些jar包的。

1.2、中央仓库

我们平时说的中央仓库指的是maven的官方仓库或者说是阿里云仓库,区别就是maven中央仓库是国外的,阿里云仓库是国内的,大致没有区别,只有个别的jar包会有差异,一般我们受到国外网络限制,都会将两个仓库地址同时配置到我们的maven上。
Maven中央仓库
阿里云仓库

1.3、私服仓库

既然jar包是一堆java文件打成的一个压缩包,那么maven官方可以做,阿里云可以做,我们自己也可以做。
举个栗子哈:我们学校准备做一个系统群,这个系统群包括,图书管理系统,选课管理系统,饭卡管理系统等等,也就是说我们这个系统群有很多的子系统,这里每个子系统都有自己的登录功能(包括前端和后端),这么多登录功能我们不可能每个系统都去写一遍,很明显不符合我们现在的面向对象开发模式,于是我们就可以把登录功能单独抽出来,整理成一个jar包,哪个系统要,哪个系统去调用就好了。但是这里我们发现一个问题,这个代码是我自己写的,我只想给自己用,不可以放到maven中央仓库或者阿里云仓库上,所以这个时候,我们就需要私服仓库 ,也就是说这个仓库是我自己私有的,我在自己的服务器上搭建了一个私有的仓库,只有我自己能访问,这个就叫私服仓库。

1.4、本地仓库

所谓本地仓库就是我们自己本地的仓库,我们从中央仓库或者私服仓库上把jar包拉下来之后,存储在我自己本地的一个指定路径,这个指定的路径就是本地仓库。

2、Maven的优点

1、Jar包管理:

a、 从Maven中央仓库获取标准的、规范的Jar包以及相关依赖的Jar包,避免自己下载到错误的Jar包(假设你要使用一个jar包,然后你去百度搜索,但是有一个人写了一堆病毒,也打了一个jar包,jar包的名字跟你所需要的jar包一模一样,你要是把人家这个用了,你的电脑不就中病毒了)。
b、 本地仓库管理Jar包,使Jar包与项目分离,减轻项目体积,就比如说我们在向别人传输项目时,就不需要将Jar包一起传输过去了。

2、跨平台:Maven是一个跨平台的,可以在windows和linux上运行。

3、maven的下载

我们进入maven官网
Maven官网链接
如下图所示,点击图中的红框,一般windows下载zip,linux的下载tar.gz,带bin的是可以使用的版本,带src的是maven插件源码,有兴趣的可以自行下载源码去研究。如果想要其他版本的可以自行往下滑官网,看不懂的英语的多查字典翻译。

在这里插入图片描述

下载好了之后,我们的页面会出现下面这个压缩包,我们顺道解压,如下图所示

在这里插入图片描述

打开apache-maven-3.9.6之后,如下图所示
bin代表二进制文件,lib代表他自己所依赖的jar包等等
我们最重要的是要关注conf这个文件夹里面的settings.xml文件

在这里插入图片描述

4、settings.xml文件介绍

打开之后我们里面的内容会很多,但是我们现在只是想用他,所以并不需要每个标签都理解的很深,只有了解部分核心标签即可

4.1、localRepository标签

这个标签是我们的本地仓库标签,里面存储的路径是maven从中央仓库或者私服仓库把jar包下载下来之后,默认放到我们本地的什么位置,如下图所示

在这里插入图片描述

看到这里默认是注释掉的,但是上面有一句话,Default: ${user.home}/.m2/repository,说这个本地仓库默认在我们的用户目录下的.m2文件夹下的repository文件夹下,如果我们需要重写,放开即可,如下图所示,我就放到了D盘的LocalRepository文件夹目录下

在这里插入图片描述

4.2、servers标签

这个标签我们可以简单的理解为我们要去别人的仓库里面拿东西,那么我们就需要钥匙,也就是我们计算机所说的用户名密码,一个servers里面可以有多个server,所以我们可以配置多组秘钥,因为有的时候我们不止需要从一个仓库拿jar包,而是从多个仓库拿jar包,如下图所示:

在这里插入图片描述

4.3、mirrors标签

顾名思义,mirrors是镜子的意思,其实也就是我们的仓库,配置的是我们要去哪些仓库拿东西,仓库的地址什么的,如下图所示:

在这里插入图片描述

其实从这三个标签我们就已经很清楚这个流程了,从哪个仓库拿jar包,用哪把钥匙把这个仓库的门打开,拿到jar包之后放到本地的什么地方。

5、jar包的分类

为什么要说到jar包的分类呢?
因为我们都已经知道要去哪个仓库拿哪个东西,如果是人的话,我们一眼就能看到那个货物在哪,但是对于电脑来说,他怎么就很快的分析出你想要的东西是什么,是不是我们就得设置一个标志来标明每一个jar包,也称之为这个jar包的唯一标识。
我们平时在开发项目时,会看到有一个pom.xml文件,在文件里面有一个dependency标签,这个标签的字面意思是依赖,其实就是我们的jar包,这个标签里面的内容就是jar包的唯一标识
这个唯一标识是:公司/组织(groupId)+项目名(artifactId)+版本(version)组成,如下所示:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.3.1</version>
</dependency>

6、总结

分析到这里了,我们总结一下,我们平时下载jar包的流程
1、maven解析pom文件,找到对应的dependency标签,分析出我们要找的jar包,将唯一标识弄成清单都整理下来。
2、拿到清单之后,在settings.xml文件中找到配置的中央仓库或者私服仓库地址,通过地址找到仓库的位置。
3、找到仓库地址之后,用servers标签中的秘钥将大门打开,对照着第一步的清单逐个在仓库中找到对应的jar包,并下载下来。
4、将下载好的jar包放到我们localRepository标签所配置的本地的路径。
5、完成,这就是maven干的事情。

10、扩展

10.1、中央仓库,私服仓库,本地仓库有没有先后顺序

答案是肯定有的
首先在这里先明确一点,对于maven来说,除了maven中央仓库,其他的,无论是你阿里云仓库,还是私服仓库,都是第三方仓库,这就好比说,我们中国人把不管是美国人还是俄罗斯人都称之为外国人一样。
在我们项目需要这些资源时,我们是这样的一个访问顺序
本地仓库==>中央仓库==>第三方仓库
也就是说当本地仓库没有时,我们就去中央仓库下载,当中央仓库也没有时,我们就去配置的第三方仓库下载,如果都没有,就报错了(这里不要问我第三方仓库的顺序,没意义,把心思放到重点上,学习不要钻牛角尖)。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值