目录
1 什么是 Maven
2 Maven 核心功能
项目构建
依赖管理
Maven Help 插件
3 Maven 仓库
本地仓库
中央仓库
私有服务器(简称私服)
4 Maven 设置国内源
配置当前项目 setting
设置新项目的 setting
1 什么是 Maven
Maven 是一个项目管理工具,基于 POM(Project Object Model,项目对象模型)的概念,Maven 可以通过一段描述信息来管理项目的构建,报告和文档的项目管理工具软件
大白话:Maven 是一个项目管理工具,通过 pom.xml (xml 格式是标签的形式)文件的配置获取 jar 包,而不是手动去添加 jar 包
在 idea 上创建一个项目
2 Maven 核心功能
Maven 提供的功能非常多,常见的两个:项目构建和管理依赖
项目构建
项目内容非常多,同样也需要打 jar 包的,项目开发需要编译(把 Java 文件变成一个 class 文件)、打包(压缩成一个 jar 包,我们看到的 jdk 就是压缩包,里面都是 class 文件)、运行(最后把 jar 包运行起来)
Maven 则是帮我们做了上述的事情,让我们这个事情变得非常简单
Mawen 具体如何做:
这些插件是 idea 对 Maven 进行了集成,Maven 是可以单独安装使用的,并不仅仅局限于 Java 使用,idea 为了方便大家,对 Maven 进行了集成,我们只需要双击一下,例如双击一下 package 就可以打包
依赖管理
- 依赖指当前项目运行需要的 jar 包
- maven 通过 pom.xml 文件来管理
使用 Maven 不需要手动下载 jar 包,只需要在 pom.xml 中引入依赖
- 在 pom 文件 <dependencies> 标签内,添加依赖坐标
- pom.xml 文件的任意改动,都需要点击刷新
如果不小心把刷新 × 掉了,也可以点击右上角 Maven 处的刷新
刷新后就可以在项目中看到导入的 jar 包,不仅 jar 包导进来了, jar 包的依赖也导了进来
传递依赖
- 早期未使用 Maven 时,向项目中添加依赖的 jar 包,需要把所有 jar 都复制到项目工程下
- 如果 A 依赖 B,B 依赖 C,那么 A 项目引入 B 同时也需要引入 C,如果我们手动管理这个依赖就会比较麻烦,需要知道每个库都依赖哪些库,以及这些依赖之间的版本是如何关联的
- 使用 Maven 就可以避免管理所需要的依赖关系,只需要在 pom 文件中直接定义依赖就可以了,由于 Maven 的依赖具有传递性,所以会自动把所依赖的其他 jar 包一起导入
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
依赖排除
排除依赖:指主动断开依赖的资源,被排除的资源无需指定版本(只需要指定要排除依赖的 “artifactld” 和 “groupld” )。因为排除的是传递性依赖,版本由依赖树决定,只需要告诉 Maven 排除哪个库(通过 “artifactld” 和 “groupld”,相当于一个坐标 ),不需要关心它的版本。
<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.0.6</version><!--排除依赖--><exclusions><exclusion><artifactId>>spring-jcl</artifactId><groupId>org.springframework</groupId></exclusion></exclusions>
</dependency>
Maven 还有一些功能是依赖调解、可选依赖等
依赖调解:当项目中的依赖存在依赖冲突时,Maven 会选择最短路径优先的原则选择依赖
例如存在这样的依赖
当前项目中的依赖存在冲突,这里第二个路径更短,所以会选择 X(2.0),当然也可以指定 X 版本
Maven Help 插件
当项目比较复杂时,就会有 jar 包冲突问题,需要去解决依赖冲突,首先需要找到冲突,可以使用 Maven Help 插件来观察包和包之间的依赖关系
- 像 IDEA 这样的程序虽然功能强大,但也无法面面俱到,对于一些特殊场景的开发,开发者可以开发一些 “插件”,如果需要这个插件就单独安装
- 插件就是对程序一些特定场景,做出一些特定功能的扩展
安装插件:File -> Setting -> Plugins -> 搜索 “Maven Help” -> 找到对应插件,点击 Install 安装即可,安装完需要重启 IDEA 才能生效
- 安装完后出现插件依赖分析
- 通过图形界面化的方式查看冲突,所有依赖通过 List 或 Tree 方式展示

- 右键 Exclude 即可排除包,代码区会自动生成排除依赖的代码
- 刷新一下项目区该排除的包就没有了
3 Maven 仓库
<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version></dependency>
</dependencies>
- 通过该代码可以将需要依赖的 jar 包引入项目
- <dependencies><dependencies/> 里面放依赖
- <dependency><dependency/> 里面放依赖的坐标
- 在 Maven 中,根据 groupld、artifactfd、version 的配置,来唯一识别一个 jar 包,缺一不可
- 当我们在 pom 文件中配置依赖之后,点击刷新,Maven 会根据坐标的配置,去仓库寻找 jar 包并下载添加到项目中,这个 jar 包下载的地方就称为仓库
- 仓库:用于储存资源,管理各种 jar 包
Maven 仓库本质就是一个目录(文件夹),这个目录被用来储存开发所有依赖(jar 包,插件等)
Maven 仓库分为两大类:本地仓库和远程仓库,远程仓库又分为中央仓库,私服和其他公共库
本地仓库
- 在自己电脑上,自己计算机上有一个目录用来储存 jar 包
- 本地仓库地址可以通过 Maven 配置查看(一个文件夹)
当项目中引入对应依赖 jar 包后,首先会查找本地仓库中是否有对应的 jar 包,有则项目直接引用,没有则会去中央仓库下载对应的 jar 包到本地仓库
中央仓库
Maven 软件中内置一个远程仓库地址就是中央仓库(实际上也是一个文件夹),服务于整个互联网,由 Maven 团队维护,全球唯一
仓库地址:https://repo1.maven.org/maven2/
我们可以把自己写好的 jar 包上传到中央仓库(具备一定要求),也可以从中央仓库下载 jar 包
查找 jar 包位置
通过访问:https://mvnrepository.com
比如查找 mysql,如下图
具体使用哪个,可以参考右边使用次数
点击该链接进去
优先选无漏洞的,选择使用相对多的
Maven 版本的选择(不严格,是推荐,基于不知道用哪个的情况,对 jar 包不熟):
- 选择无漏洞的
- 选择次新版本
- 选择使用人多的
点击一下链接进来
点击 Maven(目前比较火的构建工具) 里内容自动复制,然后粘贴到 pom 文件引入依赖
私有服务器(简称私服)
- 私服:一般是由公司团队搭建的私有仓库,属于公司或者某个部门,往往需要一定权限
- 需要询问公司账号和密码
- 有权限的人一起使用,如果遇到私服中不存在的 jar 包,第一个下载之后,后面的人就直接从私服中获取
其它公共服务器:如阿里云、华为云、有道等
4 Maven 设置国内源
中央仓库,由于在国外,访问起来较慢,就把远程仓库改为阿里云国内源 (中央仓库镜像)
配置当前项目 setting
Maven 的配置文件以及 Maven 本地仓库地址
电脑打开 Maven 本地仓库地址,里面所有文件夹可以清空,后序刷新将会重新从中央仓库下载
修改为国内源是在 Maven 的配置文件 setting,Maven 默认配置一般是没有 setting 文件的,需要把 setting 文件复制到 Maven 配置中
- 需要修改配置仓库地址,在 idea 用到的所有工具在创建项目时全部改为中文,以及代码常量和配置改为英文,项目地址和路径也需要英文
- 如果路径中有中文,修改一下 Maven 本地仓库路径
修改Maven 本地仓库路径:
把 Maven 本地仓库当前路径复制下来在电脑本地上打开,复制文件中 .m2 粘贴到自己想放的地方,然后项目中重新选择路径到仓库 repository(√ 打上才能修改)
然后 Maven 的配置文件选择复制进来的 setting 文件
Maven 配置文件(码云):https://gitee.com/git-queen-wang/maven.git
配置国内源:打开 setting.xml,在 mirrors 节点上,添加如下内容
<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>阿⾥云公共仓库</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
设置新项目的 setting

建议下载文本编辑器,可以使代码更加直观

重新下载 idea 要求:
- idea 社区版本:2021.1-2022.1.4
- idea 专业版无要求
- 专业版和社区版可以共存
如何删除干净 idea:
- 卸载程序
- 删除注册表:Windows + R 输入regedit 进入注册表
- 删除之后还有一些残留垃圾需要删除
idea 卸载参考:https://blog.csdn.net/qq_19072921/article/details/126408402