Maven 快速入门 🍁
写在前面👀
今天讲讲
Maven
的基本配置与使用
一、Maven概述🎈
Apache Maven是基于项目对象模型(
POM
project object model),通过一小段描述信息来管理项目的构建、报告和文档的项目管理和构建工具
- 它的主要功能有👇
- 提供了一套标准化的项目结构(不同IDE创建的Maven可以通用)
- 提供了一套标准化的构建流程(
编译
-->测试
-->打包
-->发布
) - 提供了一套依赖管理机制(管理项目所依赖的第三方资源,如jar包、插件)
二、Maven安装配置🎆
1️⃣下载地址🎃
2️⃣解压压缩包🎄
- 建议解压缩到没有中文、特殊字符的路径下
- 解压缩后的目录结构如下👇
- bin目录 : 存放的是可执行文件,如
mvn
命令 - conf目录 :存放Maven的配置文件,如
settings.xml
配置文件 - lib目录 :存放Maven依赖的jar包。因为Maven是用java开发的,所以它的一些功能也依赖其他的jar包。
3️⃣配置环境变量🎋
- 在系统变量处新建一个变量
MAVEN_HOME
,添加Maven安装目录路径 - 在
Path
中添加bin目录 - 打开cmd-->输入
mvn -version
命令验证是否添加成功
4️⃣Maven仓库配置🎍
1.配置本地仓库🎎
- 在Maven安装目录下创建一个文件夹,取名
local_repo
,作为本地仓库 - 打开conf目录下的
settings.xml
配置文件 - 找到
<localRepository>
,在注释外添加本地仓库的地址
<localRepository>D:\develop\apache-maven-3.6.1\local_repo</localRepository>
- 如图所示👇
-
保存后,在cmd中输入
mvn help:system
,检验是否成功添加,成功的话会在本地仓库里下很多依赖
2.配置阿里云镜像仓库🎏
- 同样,打开conf目录下的
settings.xml
配置文件 - 找到
</mirrors>
,在其上面添加阿里云远程仓库的地址
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
三、在IDEA中使用Maven🎇
1️⃣IDEA配置Maven环境🎨
Ctrl+Alt+S
打开settings设置,输入maven- 使用本地安装的 Maven,并修改配置文件路径
2️⃣创建Maven的Java工程🧵
- 新建一个工程,不使用骨架,可直接在点击 Next 按钮
- 填写项目名称和相关坐标信息
- 在test目录下添加resources包
3️⃣如何导入 Maven项目🧶
- 在右上角找到Maven面板
- 点击
+
号,选择对应项目的pom.xml
文件,双击即可
4️⃣推荐插件🛒
Maven Helper
- 功能:选中项目右键可进行如下操作👇
四、Maven管理依赖🧨
1️⃣使用快捷方式导入jar包✨
- 在 pom.xml 文件中中 按
alt + insert
,选择 Dependency - 搜索要导入的jar包名称,选择相应的坐标
- 点击小图标,才能真正导入成功
2️⃣自动导入设置🎉
Ctrl+Alt+S
打开settings设置,找到Build Tools,勾选Any changes
,这样每次导入就不用点击小图标了!
3️⃣依赖范围管理🎊
- 通过
<scope> ......</scope>
标签指定依赖的作用范围,如:编译环境、测试环境、运行环境 - 下表是scope的依赖管理范围👇
依赖范围 | 编译 | 测试 | 运行 | 例子 |
---|---|---|---|---|
compile | Y | Y | Y | logback |
test | - | Y | - | Junit |
provided | Y | Y | - | servlet-api |
runtime | - | Y | Y | MySQL驱动包 |
system | Y | Y | - | 本地jar包 |
- compile :作用于编译环境、测试环境、运行环境。
- test : 作用于测试环境。如Junit坐标
- provided :作用于编译环境、测试环境。如
servlet-api
,在使用它时,必须将scope
设置为该值,不然运行时就会报错 - runtime : 作用于测试环境、运行环境。MySQL驱动一般将
scope
设置为该值,当然不设置也没有任何问题
- 示例👇
五、Maven生命周期🎁
1️⃣常用命令🥼
-
compile :编译
-
clean:清理
-
test:测试
-
package:打包
-
install:安装
2️⃣生命周期分类🧥
- clean :清理工作。
- default :核心工作,如编译,测试,打包,安装等。
- site : 产生报告,发布站点等。这套声明周期一般不会使用。
3️⃣default生命周期执行顺序👔
- 如果执行install命令时,会按照这个顺序执行相关命令
compile
-->test
-->package
-->install
4️⃣其他命令👕
写在后面🍻
转载自:https://juejin.cn/post/7087224245549269000