目录
1.了解Maven
1.Maven是什么
- Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
- POM(Project Object Model):项目对象模型
2.Maven的作用
- 项目构建:提供标准的、跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
- 统一结构开发:提供标准的、统一的项目结构
3.Maven的基础概念
1.仓库
用于存储资源,包含各种jar包.
2.仓库分类
-
本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
-
远程仓库:非本机电脑上的仓库,为本地仓库提供资源
3.远程仓库分类
-
中央仓库:Maven团队维护,存储所有资源的仓库
-
私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
4.私服的作用
-
保存具有版权的资源,包含购买或自主研发的jar包 (中央仓库中的jar都是幵源的,不能存储具有版权的资源)
-
—定范围内共享资源,仅对内部幵放,不对外共享
5.坐标
- 什么是坐标?
Maven中的坐标用于描述仓库中资源的位置
https://reDo1.maven.org/maven2
-
Maven坐标主要组成
groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)
artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS
version:定义当前项目版本号
-
Maven坐标的作用 唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成
2.使用Maven
1.创建maven项目
可以看到,生成了一个标准的maven模板
2.依赖管理
- 依赖指的是当前项目运行所依赖的jar包
- 一个项目可以设置多个依赖
1.依赖配置
<!-- 设置当前项目所依赖的所有jar-->
<dependencies>
<!-- 设置具体依赖-->
<dependency>
<!-- 依赖所属群组id-->
<groupId>org.springframework</groupId>
<!-- 依赖所属项目id-->
<artifactId>spring-context</artifactId>
<!-- 依赖版本号-->
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
2.依赖传递
依赖具有传递性
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
3.依赖传递冲突问题
-
路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
-
声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
-
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的