目录
-
概述
- 用于管理和构建java项目的工具
- 基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档
-
作用
- 1.方便的依赖管理(jar包管理)
- 避免项目中不同jar包的版本冲突
- 2.统一的项目结构
- 自动生成统一、标准的项目目录结构,避免不同开发工具创建项目时目录结构不统一
- 3.标准的项目构建
- 提供标准的跨平台的自动化项目构建方式
- 1.方便的依赖管理(jar包管理)
-
Maven对象模模型
- 项目对象模型
- 依赖管理模型
- 构建生命周期的阶段
-
Maven仓库
- 概述:
- 仓库的本质就是一个目录文件,这个目录备用来存储开发中所有依赖(jar包)和插件
- 作用:
- 存储资源管理各种jar包
- 分类:
- 本地仓库
- 自己计算机上的一个目录(用来存储jar包)
- 中央仓库
- 由Maven团队维护的全球唯一的
- https://repo1.maven.org/maven2/
- 由Maven团队维护的全球唯一的
- 远程仓库(私服)
- 般由公司团队搭建的私有仓库
- 本地仓库
- 资源查找顺序
- 本地仓库 --> (远程仓库)--> 中央仓库
- 概述:
-
Maven安装
- 1.下载
- https://maven.apache.org/download.cgi
- 2.安装
- 解压
- 配置仓库
- 配置本地仓库
- 配置私服
- 配置环境变量
- 1.下载
-
POM文件详情
- <project> :pom文件的根标签,表示当前maven项目
- <modelVersion> :声明项目描述遵循哪一个POM模型版本
- 坐标 :<groupId>、<artifactId>、<version>
- 定位项目在本地仓库中的位置,由以上三个标签组成一个坐标
- <packaging> :maven项目的打包方式,通常设置为jar或war(默认值:jar)
-
坐标
- 概述
- Maven中的坐标是指资源的唯一标识,可通过这个坐标唯一定位资源位置
- 主要组成
- groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
- rtifactId:定义当前Maven项目名称(通常是模块名称)
- version:定义当前项目版本号
- 概述
-
依赖
- 概述
- 当前项目运行所需要的jar包
- 依赖具有传递性(类似于继承关系)
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
- 配置
- maven工程的pom.xml文件中引入
- 步骤
- 在pom.xml中编写<dependencies>标签
- 在<dependencies>标签中使用<dependency>引入坐标
- 定义坐标的 groupId、artifactId、version
- 刷新,确保依赖引入或修改成功
- 坐标信息
- 中央仓库查找
- https://mvnrepository.com/
- 中央仓库查找
- 排除依赖
- 概述
- 主动断开依赖的资源
- 方式
- 在<exclusions>下添加<exclusion>标签
- 概述
- 依赖范围
- 如果希望限制依赖的使用范围,可以通过在<dependency>内添加<scope>标签控制其作用范围。
- <scope>取值范围
- compile(默认)
- 主程序、测试程序、打包程序
- test
- 测试程序
- provided
- 主程序、测试程序
- runtime
- 测试程序、打包程序
- compile(默认)
- 概述
-
生命周期
- 概述
- Maven对项目构建的生命周期划分为3套(相互独立)
- clean
- 清理工作
- default
- 核心工作。如:编译、测试、打包、安装、部署等
- site
- 生成报告、发布站点等
- 全部生命周期
-
- 重点关注生命周期
- clean
- 移除上一次构建生成的文件
- compile
- 编译项目源代码
- test
- 使用合适的单元测试框架运行测试(junit)
- package
- 将编译后的文件打包,如:jar、war等
- install
- 安装项目到本地仓库
- 执行顺序
- clean --> compile --> test --> package --> install
- clean
- 说明
- 在同一套生命周期中,我们在执行后面的生命周期时,前面的生命周期都会执行
- 概述