Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
- 提供了一套标准化的项目结构
- 提供了一套标准化的构建流程(编译,测试,打包,发布……)
- 提供了一套依赖管理机制
仓库分类
- 本地仓库:自己计算机的一个目录
- 中央仓库:由Maven团队维护的全球唯一的仓库
- 远程放库:一般由公司团队搭建的私有仓库
当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包
- 有,则在项目中直接引用
- 没有,则去中央仓库下载对应jar包到本地仓库
Maven常用命令
- compile:编译
- clean:清理
- test:测试
- package:打包
- install:安装
Maven生命周期
- Maven构建项目生命周期描述的是一次构建过程经历了多少个事件
- Maven对项目构建的生命周期划分为3套
- clean:清理工作
- default:核心工作,例如编译,测试,打包,安装等
- site:产生报告,发布站点等
- 同一生命周期内,执行后边的命令,前边所有的命令会自动执行
Maven坐标详解
- 什么是坐标?
- Maven中的坐标是资源的唯一标识
- 使用坐标来定义项目或引入项目中需要的依赖
- Maven坐标主要组成
- groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
- artifactId:定义当前Maven项目名称(通常是模块名称)
- version:定义当前项目版本号
使用坐标导入jar包
- 在pom.xml中编写
标签 - 在
标签中使用 引入坐标 - 定义坐标的groupId,artifactId,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 |