1. 概述
在安装 Apache Maven 的过程中,我们需要配置多个环境变量以确保 Maven 正常运行。本文将重点分析三个关键变量:M2_HOME
、MAVEN_HOME
和 PATH
,并探讨它们在不同 Maven 版本中的影响机制。
⚠️ 注意:Apache Maven 1.x 和 2.x 已停止维护。第 2、3 节的配置仅作演示说明,不推荐实际使用。
2. Maven 1.x 时代的配置
下载并解压 Maven 二进制包后,进入其 bin
目录执行命令测试:
$ maven -v
系统会直接报错:
MAVEN_HOME must be set
这说明 MAVEN_HOME
环境变量 在 Maven 1.x 中有两个作用:
- 指向 Maven 的安装目录
- 是 强制要求 的变量
设置该变量后再次执行命令:
$ maven -v
成功输出版本信息:
__ __
| \/ |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \ ~ intelligent projects ~
|_| |_\__,_|\_/\___|_||_| v. 1.1
3. Maven 2.x 的变更
同样解压 Maven 2.x 二进制包后,在 bin
目录执行:
$ mvn -v
与 1.x 不同,2.x 不再强制要求 设置 MAVEN_HOME
或 M2_HOME
。输出类似:
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.8.0_412
Java home: /home/.sdkman/candidates/java/8.0.412.fx-librca/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux"
关键变化:
- ✅ 变量名从
MAVEN_HOME
改为M2_HOME
- ✅ 变量变为 可选(非强制)
- ❌ 但若需指定安装路径,仍需设置
M2_HOME
4. Maven 3.x 的演进
解压 Maven 3.x 后执行版本检查:
$ mvn -v
输出结果:
Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
Maven home: /home/dev-tools/apache-maven-3.9.8
Java version: 1.8.0_412, vendor: BellSoft,
runtime: /home/.sdkman/candidates/java/8.0.412.fx-librca/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux"
核心改进:
- ✅ 重新启用
MAVEN_HOME
作为主变量 - ✅ 替代了 2.x 的
M2_HOME
- ✅ 仍保持 可选 属性
5. 配置对比总结
下表清晰展示了三个版本的差异:
Maven 版本 | 环境变量名 | 是否必需 |
---|---|---|
1.x | MAVEN_HOME |
✅ 是 |
2.x | M2_HOME |
❌ 否 |
3.x | MAVEN_HOME |
❌ 否 |
6. PATH 变量的配置方法
前文演示的命令都是在 Maven 的 bin
目录下执行的。要能在任意目录使用 Maven 命令,必须将 bin
目录添加到 PATH
环境变量中。具体配置方式因操作系统而异:
配置完成后,即可在系统任何位置执行 Maven 命令。
7. 关键结论
通过本文分析,我们厘清了三个环境变量的本质区别:
目录指向变量
MAVEN_HOME
:用于 Maven 1.x 和 3.xM2_HOME
:仅用于 Maven 2.x- 现代版本(3.x)中两者均可选
PATH 变量
- 控制 Maven 命令的全局可用性
- 必须包含 Maven 的
bin
目录路径
💡 实践建议:当前使用 Maven 3.x 时,只需确保 PATH 包含
bin
目录即可,MAVEN_HOME
已非必需——但设置它能明确标识安装路径,便于维护。