Apache Maven
1. Maven简介
maven是一个项目管理和构建工具
1.2 Maven的作用
1.标准化的项目结构
2.标准化的构建流程
3.方便的依赖管理
Maven官网:Maven – Welcome to Apache Maven
1.3 Maven模型
注:各种各样插件构建生命周期,这个一部分是标准化结构流程
注:在pom.xml创建各种各样的项目里面有项目唯一的标识,标识之间形成依赖关系
1.4 Maven仓库
1.本地仓库(计算机上的一个目录)
2.中央仓库(官网免费的jar包)
3.远程仓库(私人仓库一般是公司搭建)
工作流程
当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
1.如果有,则在项目直接引用;
2.如果没有,则去中央仓库中下载对应的jar包到本地仓库。
3.然后项目再向本地仓库引用
如果搭建了远程仓库流程如下:
当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
1.如果有,则在项目直接引用;
2.如果没有,则去中央仓库中下载对应的jar包到远程仓库。
3.远程仓库再下载到本地仓库
4.然后项目再向本地仓库引用
2. Maven安装配置
2.1 下载apache-maven-3.6.1-bin
下载地址:https://pan.baidu.com/s/1cFxigVC4QCshe9wqeRtfAA?pwd=eq51
1.下载到指定位置,然后解压到当地文件夹(就是安装完成)

2.解压缩后的目录结构如下:
2.2 配置环境变量 MAVEN_HOME 为安装路径的bin目录
1.复制目录
2.此电脑 右键 --> 高级系统设置 --> 高级 --> 环境变量
3.在系统变量处新建一个变量 MAVEN_HOME
4.在 Path 中进行配置
5.打开命令提示符进行验证,出现如图所示表示安装成功
2.3 配置本地仓库
1.在E:\software\apache-maven-3.6.1下创建一个目录当本地仓库
2.复制目录
3.修改 conf/settings.xml 中的 为一个指定目录作为本地仓库,用来存储jar包。

4.修改完成的样子
5.本地仓库配置成功,保存退出
2.4 Maven配置阿里云私服,为什么配置阿里云私服?
中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。
修改 conf/settings.xml 中的 标签,为其添加如下子标签:
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
在conf/settings.xml下的配置如下:
测试阿里云是否可用(安装插件测试)
查看插件是否安装到本地仓库
配置完成
3. Maven的基本使用
3.1 Maven的基本命令
Maven常用的命令
compile :编译
clean:清理
test:测试
package:打包
install:安装
3.2 Maven 生命周期
Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
1. Maven 对项目构建的生命周期划分为3套:
clean :清理工作。
default :核心工作,例如编译,测试,打包,安装等。
site : 产生报告,发布站点等。这套声明周期一般不会使用。
同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。例如默认(default)生命周期如下:
当我们执行 install (安装)命令时,它会先执行 compile 命令,再执行 test 命令,再执行 package 命令,最后执行
install 命令。
当我们执行 package (打包)命令时,它会先执行 compile 命令,再执行 test 命令,最后执行 package 命令。
4. IDE使用Maven
4.1 IDE配置Maven环境
选择 IDEA中 File --> Settings
搜索 maven
设置 IDEA 使用本地安装的 Maven,并修改配置文件路径
注:如果依赖出现错误可以用我配置的仓库:https://pan.baidu.com/s/1xDLMa-qtqhdTDeV4msUZrw?pwd=rrtc
配置完成
4.2 Maven 坐标
什么是坐标?
Maven 中的坐标是资源的唯一标识
使用坐标来定义项目或引入项目中需要的依赖
Maven 坐标主要有三部分组成
groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.gdcmzyxx)
artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
version:定义当前项目版本号(项目的版本号)
4.3 IDE创建一个Maven项目
创建模块
选择Maven,点击Next
填写模块名称,坐标信息,点击finish,创建完成
创建好的项目目录结构如下:
4.4 IDe导入Maven项目
选择右侧Maven Projects面板,点击 + 号
选中对应项目的pom.xml文件,双击即可
项目导入成功4.5 安装Maven Hello插件1. 选择 IDEA中 File --> Settings
选择 Plugins,然后点击Browse repositories
搜索 Maven,选择第一个 Maven Helper,点击Install安装,弹出面板中点击Accept
重启IDEA就可以看见插件
5. 依赖管理
5.1 导入Jar包
使用坐标引入jar包的步骤:
在项目的 pom.xml 中编写 标签
在 标签中 使用 引入坐标()
我们要什么坐标就去网上找比如MySQL (网上搜索mysql maven)
然后在里面找到你需要的版本,然后复制到里面定义坐标的 groupId,artifactId,version
如下:

让其生效:
导入多个jar包(全部要在里面)
5.2快速导入已有jar
快捷引入坐标的方式
在 pom.xml 中 按 alt + insert,选择 Dependency
在弹出的面板中搜索对应坐标,然后双击选中对应坐标
点击刷新按钮,使坐标生效
6. 依赖范围
1. 怎么设置范围:
通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境。
如下图所示给 junit 依赖通过 scope 标签指定依赖的作用范围。 那么这个依赖就只能作用在测试环境,其他环境下不能使
用。

2. scope 取值和范围
compile :作用于编译环境、测试环境、运行环境。test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值
provided :作用于编译环境、测试环境。我们后面会学习 servlet-api ,在使用它时,必须将 scope 设置为该值,不然运行时就会报错
runtime : 作用于测试环境、运行环境。jdbc驱动一般将 scope 设置为该值,当然不设置也没有任何问题使用。

2. scope 取值和范围
[外链图片转存中…(img-gT5dAJnU-1668339345545)]
compile :作用于编译环境、测试环境、运行环境。test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值
provided :作用于编译环境、测试环境。我们后面会学习 servlet-api ,在使用它时,必须将 scope 设置为该值,不然运行时就会报错
runtime : 作用于测试环境、运行环境。jdbc驱动一般将 scope 设置为该值,当然不设置也没有任何问题