定义
是一款用于管理和构建java项目的工具
作用
1. 依赖管理
2. 统一项目结构
3. 项目构建
项目目录结构
POM
项目对象模型 (Project Object Model)
POM (Project Object Model) :指的是项目对象模型,用来描述当前的maven项目。
仓库
本地仓库:自己计算机上的一个目录
中央仓库:由Maven团队维护的全球唯一的
远程仓库:一般由公司团队搭建的私有仓库
使用
1.下载完maven后在目录中新建一个文件夹
2.进入到conf目录下修改settings.xml配置文件
1). 使用超级记事本软件,打开settings.xml文件,定位到53行
2). 复制<localRepository>标签,粘贴到注释的外面(55行)
3). 复制之前新建的用来存储jar包的路径,替换掉<localRepository>标签体内容
3.配置阿里云私服
进入到conf目录下修改settings.xml配置文件:
1). 使用超级记事本软件,打开settings.xml文件,定位到160行左右
2). 在<mirrors>标签下为其添加子标签<mirror>,内容如下:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>
4.配置环境变量(两步)
打开cmd输入命令看是否安装成功
IDEA集成Maven
1.选择所有设置,就不用再一个一个配置。
2、设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库路径
3、配置工程的编译版本为21(数字为你自己JDK的版本)
创建Maven项目
坐标
* Maven中的坐标是==资源的唯一标识== , 通过该坐标可以唯一定位资源位置
* 使用坐标来定义项目或引入项目中需要的依赖
Maven坐标主要组成
* groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
* artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
* version:定义当前项目版本号
导入maven项目
打开IDEA,选择右侧Maven面板,点击 + 号,选中对应项目的pom.xml文件,双击即可
依赖管理
依赖配置
1. 在pom.xml中编写<dependencies>标签
2. 在<dependencies>标签中使用<dependency>引入坐标
3. 定义坐标的 groupId、artifactId、version
4.记得点击刷新依赖按钮
<dependencies><!-- 第1个依赖 : logback --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version></dependency><!-- 第2个依赖 : junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>
</dependencies>
依赖传递
依赖具有传递性
- projectA依赖了projectB。对于projectA 来说,projectB 就是直接依赖。
- 而projectB依赖了projectC及其他jar包。 那么此时,在projectA中也会将projectC的依赖传递下来。对于projectA 来说,projectC就是间接依赖。
排除依赖:
<!--排除依赖, 主动断开依赖的资源--><exclusions><exclusion><groupId>junit</groupId><artifactId>junit</artifactId></exclusion></exclusions>
依赖范围
如果希望限制依赖的使用范围,可以通过<scope>标签设置其作用范围。
生命周期
三套生命周期
-
clean:清理工作。
-
default:核心工作。如:编译、测试、打包、安装、部署等。
-
site:生成报告、发布站点等。
主要关注以下几个:
• clean:移除上一次构建生成的文件
• compile:编译项目源代码
• test:使用合适的单元测试框架运行测试(junit)
• package:将编译后的文件打包,如:jar、war等
• install:安装项目到本地仓库
在同一套生命周期中,我们在执行后面的生命周期时,前面的生命周期都会执行