Maven基础
Maven基础
Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
- 提供了一套标准化的项目结构
 - 提供了一套标准化的构建流程(编译,测试,打包,发布…..)
 - 提供了一套依赖管理机制
 
标准化的项目结构

标准构建流程
编译=》测试=》打包=》发布
依赖管理机制
管理你项目所依赖的第三方资源(jar包、插件…)

仓库分类
- 本地仓库:自己计算机上的一个目录
 - 中央仓库:由Maven团队维护的全球唯一的仓库
 - 远程仓库(私服):一般由公司团队搭建的私有仓库
 
引入依赖
当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
如果有,则在项目直接引用;
如果没有,则去中央仓库中下载对应的jar包到本地仓库。
Maven生命周期
Maven构建项目生命周期描述的是一次构建过程经历经历了多少个事件Maven对项目构建的生命周期划分为3套
- clean:清理工作
 - default:核心工作,例如编译,测试,打包,安装等
 - site:产生报告,发布站点等
 
同一生命周期内,执行后边的命令,前边的所有命令会自动执行。
Maven 坐标
什么是坐标?
Maven 中的坐标是资源的唯一标识。
使用坐标来定义项目或引入项目中需要的依赖。
Maven坐标主要组成:
- groupld:定义当前Maven项目隶属组织名称(通常是域名反写)
 - artifactld:定义当前Maven项目名称(通常是模块名称)
 - version:定义当前项目版本号
 
依赖管理
通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境
| 依赖范围 | 编译classpath | 测试classpath | 运行classpath | 例 | 
|---|---|---|---|---|
| compile | Y | Y | Y | logback | 
| test | - | Y | - | Junit | 
| provided | Y | Y | - | servlet-api | 
| runtime | - | Y | Y | jdbc驱动 | 
| system | Y | Y | - | 存储在本地的jar包 | 
| import | 引入DependencyManagement | 
默认值: compile 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 贾小白博客!





