Maven的下载、安装、使用
- 一、为什么需要使用Maven呢?
- 二、Maven的下载与安装
-
- (一)图形界面操作(Mac)
-
- [1. 下载](#1. 下载)
- [2. 安装](#2. 安装)
- [3. 卸载](#3. 卸载)
- (二)用命令行操作
-
- [1. 命令行安装 Maven](#1. 命令行安装 Maven)
- [2. 纯命令行手动下载安装 Maven](#2. 纯命令行手动下载安装 Maven)
-
- [(1) 下载](#(1) 下载)
- [(2) 解压](#(2) 解压)
- [(3) 配置环境变量](#(3) 配置环境变量)
- [(4) 验证:](#(4) 验证:)
- [3、命令行安装 Maven 的本质](#3、命令行安装 Maven 的本质)
- 三、Maven的使用
一、为什么需要使用Maven呢?
场景一:新建项目
没有Maven,程序员的操作:
有Maven,程序员的操作:

场景二:项目缺少依赖jar包
没有Maven,程序员的操作:
有Maven,程序员的操作:

场景三:项目从源码到部署到服务器
没有Maven,程序员的操作:
有Maven,程序员的操作:

对比总览
| 无 Maven | 有 Maven | |
|---|---|---|
| 场景一:新建项目 | 手动建目录 + 手工下载每个 jar + 处理传递依赖 + 配 classpath | mvn archetype:generate 或写 pom.xml,自动搞定一切 |
| 复杂度 | 高(7 步起) | 低(2 步) |
| 耗时 | 半天起步 | 几分钟 |
| 场景二:缺少依赖 | 搜索引擎找 jar → 下载 → 发现缺传递依赖 → 继续找 → 版本冲突试错 | 在 pom.xml 加一行 <dependency>,Maven 自动下载所有连带依赖 |
| 复杂度 | 高(地狱级传递依赖追踪) | 低(一行 XML) |
| 耗时 | 30 分钟到数小时 | 10 秒 |
| 场景三:源码到部署 | javac 编译 → 手动跑测试 → jar 打包 → 写 MANIFEST → scp 上传 → 每次重复 |
mvn clean package → 编译测试打包一条命令 → 失败自动中断 |
| 复杂度 | 高(6 步,全手动) | 低(1 条命令) |
| 耗时 | 每次 10 分钟 + 易出错 | 每次 30 秒,可靠可重复 |
核心差异就三个词
- 规范化 ------ 项目结构、构建流程全行业统一,换公司换项目,目录结构不变
- 自动化 ------ 依赖解析、传递依赖、版本冲突、编译测试打包,全由 Maven 搞定
- 可重复 ------ 今天能跑、明天能跑、同事电脑上也能跑,CI/CD 流水线也能跑
没有 Maven 的年代,每个 Java 项目的 lib/ 文件夹都是一个手工维护的噩梦。Maven 把这件脏活累活变成了自动化的基础能力。

结论:
使用Maven,规范化、自动化、可重复。Maven把编码之外的重复性、流程性工作封装起来,对程序员暴露简单易用的入口。使用Maven可以大大节省程序员的时间,降低交付流程的复杂度。 不止暴露给程序员,也可以暴露给自动化构建工具,例如Jenkins,它们配合完成自动化部署。
二、Maven的下载与安装
(一)图形界面操作(Mac)
1. 下载
去哪里下载呢?
官网:https://maven.apache.org/download.cgi
下载哪个包呢?
当前最新版本是3.9.16。

我的笔记本是mac,所以下载"apache-maven-3.9.16-bin.tar.gz"。
下载的是什么呢?
下载的是Maven编译过后的二进制文件.class文件。下载后解压可以看到目录:

Maven安装包解压后的目录结构,各个包的作用,包下面放的是什么?
先看一下 README.txt

了解到Maven是由Java语言编写的项目管理工具。要想使用Maven,需要jdk环境,(如果拿到的是Maven的source源码,就需要对Maven的源码进行编译、运行)。目前我拿到的是二进制文件(编译过的)可在jdk环境配好的情况下直接运行。
配置Maven运行环境的过程就是Maven的安装过程。
2. 安装
- 安装到电脑的什么目录下?为什么?
只要安装到没有中文,没有空格,没有括号的路径下即可。
根本原因:脚本和 Java 对特殊字符的处理很脆弱。中文、空格、括号,会当特殊字符处理。 - 安装怎么理解?实际是做了什么操作?
安装是做了一些配置,让操作系统可以识别Maven的存在,可以接入Maven。还配了一些JVM的路径,远程仓库的路径、等,让Maven可以使用JVM、可以主动去远程仓库拉取jar包。
安装没有编译、写注册表这些内容,因为,二进制包本身就是编译好的文件,可直接在JVM上运行。而写注册表是Windows上的操作,目的是为了记住Maven的路径,不够通用,Maven采用更通用的方式,配置path,让操作系统去寻找mvn的路径。 - 安装包括配置,配置项有哪些?要怎么配置?为什么要配置这些?
(1) 安装Java:
先检查是否已安装:
terminal中输入
java -version
javac -version

为什装Java:因为Maven是Java编写的项目,运行需要JVM,所以需要安装JDK,那安装jre可以吗?能不能只安装jvm?
不能只装jvm,因为Maven启动项目需要java命令,而java命令属于jre。也不能只装jre,因为Maven的核心功能之一编译项目compile,需要使用javac命令,javac命令属于JDK。所以使用Maven必须安装JDK。
(AI回复:Maven 是 Java 编写的程序,因此运行 Maven 至少需要 JRE(包含 JVM);但 Maven 的核心用途是编译、测试、打包 Java 项目,而这些过程需要 JDK 提供的 javac 等开发工具,所以实际使用 Maven 时通常必须安装 JDK,而不是只安装 JRE。)
(2) 配置环境变量(配置MAVEN_HOME;配置PATH)(Mac/Linux):
编辑:
vim ~/.zshrc
添加:
export MAVEN_HOME=/Users/xxx/software/apache-maven-3.9.11
export PATH= M A V E N H O M E / b i n : MAVEN_HOME/bin: MAVENHOME/bin:PATH
刷新配置:
source ~/.zshrc
操作截图:


(3) 检查安装是否成功:
terminal中输入mvn -v,显示目标版本号即成功

- 安装时与其他软件有什么联系?
依赖JDK,必须安装JDK。
Maven是怎么跟IDEA关联起来的?为什么idea中可以使用Maven的功能?
Maven还可以在什么地方使用?还跟什么软件有关系?
Maven与命令行、终端terminal的关系是什么?
Maven与idea的关系是什么?
3. 卸载
- 删除安装包
- 删除环境变量配置
环境变量可能配置在
~/.bash_profile
~/.zshrc
它们两个有什么关系?
(二)用命令行操作
1. 命令行安装 Maven
Maven 完全可以通过命令行下载和安装,而且很多 Linux 服务器就是这么做的。
Mac(Homebrew)
如果安装了 Homebrew:
bash
brew install maven
查看:
bash
mvn -version
输出类似:
text
Apache Maven 3.9.x
Java version: 17
安装完成。
2. 纯命令行手动下载安装 Maven
假设不使用包管理器。
(1) 下载
可以从 Maven 官网获取压缩包:
例如:
bash
curl -O https://downloads.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz
(2) 解压
bash
tar -zxvf apache-maven-3.9.11-bin.tar.gz
得到:
text
apache-maven-3.9.11/
(3) 配置环境变量
bash
vim ~/.zshrc
添加:
bash
export MAVEN_HOME=$HOME/apache-maven-3.9.11
export PATH=$MAVEN_HOME/bin:$PATH
刷新:
bash
source ~/.zshrc
(4) 验证:
bash
mvn -version
3、命令行安装 Maven 的本质
无论是:
bash
brew install maven
还是:
bash
apt install maven
最终都在做类似的事情:
text
下载 Maven 压缩包
↓
解压到某个目录
↓
配置 PATH
↓
获得 mvn 命令
所以 Maven 本质上仍然是一个"解压即用"的工具,只是包管理器帮你自动完成了这些步骤。