Maven在不同操作系统上如何安装?
大家好,我是袁庭新。Maven是一个重要的工具,还有很多初学者竟然不知道如何安装Maven?这篇文章将系统介绍如何在Windows、macOS、Linux操作系统上安装Maven。
Maven是一个基于Java的项目管理工具。因此,最基本的要求是在计算机上安装了JDK,JDK的安装这里暂不介绍。
1.Maven软件下载
使用Maven管理工具,我们首先要到官网去下载Maven的安装软件。Maven下载网址http://maven.apache.org/download.cgi,这里我们以Maven 3.8.4为例。

在编写这套教程的时候,目前最新版是apache-maven-3.8.4-bin.zip或apache-maven-3.8.4-bin.tar.gz版本,根据操作系统提前下载好了对应的Maven版本。
2.Maven软件安装
Apache Maven的安装过程很简单,只需解压存档文件(开箱即用),并使用mvn命令将bin文件夹添加到Path环境变量中即可。
在任何目录中提取分发文件(即将Maven解压到合适的位置即可):
unzip apache-maven-3.8.4-bin.zip
或者:
tar xzvf apache-maven-3.8.4-bin.tar.gz
解压文件尽量不要放在含有中文或特殊字符或有空格的目录下(比如解压到H:\software目录下)。Maven安装包解压后目录结构如下:

解压后得到apache-maven-3.8.4目录,对该目录下的文件解释说明见下:
| 目录 | 描述 |
| bin | 存放了Maven的命令文件,含有mvn运行的脚本 |
| boot | 存放了一些Maven本身的引导程序,如plexus-classworlds类加载器框架,Maven使用该框架加载自己的类库 |
| conf | 存放了Maven的一些配置文件,如settings.xml配置文件 |
| lib | 存放了Maven本身运行所需的一些jar包文件 |
3.Maven环境变量配置
将解压Maven的apache-maven-3.8.4目录下的bin目录添加到Path环境变量中。
3.1 Windows配置Maven环境变量
1.打开系统属性(WinKey + Pause),选择【高级】选项卡下的【环境变量】选项,新建一个【MAVEN_HOME】变量名,变量值为Maven的安装目录。
H:\software\apache-maven-3.8.4
2.将MAVEN_HOME添加到Path系统变量中。
%MAVEN_HOME%\bin
3.打开一个新的命令提示符(Winkey + R然后键入cmd)并运行mvn -v以验证Maven是否配置成功。
# 查看Maven工具的版本信息
mvn -v
# 或者使用以下命令也可查看Maven工具的版本信息
mvn -version
3.2 Unix配置Maven环境变量
基于Unix的操作系统(Linux、Solaris和Mac OS X)配置方式相同,下面以Mac OS系统为例进行配置说明。
3.2.1 MAC配置Maven环境变量步骤
1.打开Mac终端,输入以下命令编辑用户主目录下的.bash_profile启动脚本文件(或.zshrc启动脚本文件),具体根据你使用的Shell。使用vim编辑器编辑启动脚本。
vim ~/.bash_profile
注意:如果指定的文件不存在,则输入touch ~/.bash_profile 命令创建新的空白文件,然后再输入上面的命令。
2.打开.bash_profile文件后,按下i键进入到输入模式,在启动脚本下添加如下两行命令。
export MAVEN_HOME=/Users/yuanxin/Documents/ProgramSoftware/apache-maven-3.8.4
export PATH=$MAVEN_HOME/bin:$PATH
3.然后按下esc键退出插入模式,然后再输入:wq命令,敲击回车按键,保存并退出该文件。
4.为了让我们刚刚添加的环境变量生效,使用source命令加载环境变量,使.bash_profile文件生效。
source ~/.bash_profile
5.配置完成后,你可以通过运行以下命令来验证Maven安装是否成功。
yuanxin@yuanxindeMacBook-Pro ~ % mvn -v
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /Users/yuanxin/Documents/ProgramSoftware/apache-maven-3.8.4
Java version: 11.0.12, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
Default locale: zh_CN_#Hans, platform encoding: UTF-8
OS name: "mac os x", version: "11.4", arch: "x86_64", family: "mac"
6.如果输出结果如下所示,证明Maven配置成功。如果没有,检查路径是否正确,或者版本号名称等。

3.2.2 问题zsh: command not found: mvn解决
如果出现,新打开的终端输入mvn -v指令,报"zsh: command not found: mvn"错,然后重新输入source ~/.bash_profile指令后,又恢复正常的问题。是由于Mac系统的升级,新的环境变量读取方式走的是zsh,所以才会存在以上问题。解决的方法见下。
1.在Mac的终端执行以下命令。
vi ~/.zshrc
2.在.zshrc文件末尾追加以下内容(如果没有该文件则直接创建,并追加以下内容保存即可)。
source ~/.bash_profile
3.最后再次执行.zshrc让配置生效。
source ~/.zshrc
3.2.3 Mac上有3处可以设置环境变量
具体介绍见下表:
| 文件 | 描述 |
| /etc/profile | 系统全局变量,系统启动即加载该文件的配置(不建议添加) |
| /etc/bashrc | 所有类型的bash shell都会读取该文件的配置 |
| ~/.bash_profile | 配置用户级环境变量,在系统用户文件夹下创建,当用户登录时,该文件会被执行且仅执行一次 |
4.总结
最后做一个总结,这是一篇Maven安装指南的教程,主要介绍了在Windows、macOS、Linux系统上安装Maven的步骤。核心步骤总结如下:
- 下载Maven:从Apache官网下载对应系统的Maven安装包。
- 解压安装:解压安装包,避免中文或特殊字符路径。
- 配置环境变量:Windows需设置MAVEN_HOME并添加到Path;Unix系统需编辑.bash_profile或.zshrc文件添加环境变量。
- 验证安装:通过mvn -v命令验证Maven是否配置成功。
相关文章:
Maven在不同操作系统上如何安装?
大家好,我是袁庭新。Maven是一个重要的工具,还有很多初学者竟然不知道如何安装Maven?这篇文章将系统介绍如何在Windows、macOS、Linux操作系统上安装Maven。 Maven是一个基于Java的项目管理工具。因此,最基本的要求是在计算机上安…...
maven如何从外部导包
1.找到你项目的文件位置,将外部要导入的包复制粘贴进你当前要导入的项目下。 2.从你的项目目录下选中要导入的包的pom文件即可导包成功 注意一定是选中对应的pom文件 导入成功之后对应的pom.xml文件就会被点亮...
如何在 Hive SQL 中处理复杂的数据类型?
目录 一、复杂数据类型简介 二、创建表时使用复杂数据类型 三、插入数据到复杂数据类型的表 四、查询复杂数据类型...
数据结构:DisjointSet
Disjoint Sets意思是一系列没有重复元素的集合。一种常见的实现叫做,Disjoint-set Forest可以以接近常数的时间复杂度查询元素所属集合,用来确定两个元素是否同属一个集合等,是效率最高的常见数据结构之一。 Wiki链接:https://en…...
中国省级产业结构高级化及合理化数据测算(2000-2023年)
一、数据介绍 数据名称:中国省级产业结构高级化、泰尔指数 数据年份:2000-2023年 数据范围:31个省份 数据来源:中国统计年鉴、国家统计局 数据整理:内含原始版本、线性插值版本、ARIMA填补版本 数据说明…...
Nginx不使用域名如何配置证书
如果你不打算使用域名而是使用 IP 地址来配置 Nginx 的 SSL 证书,你会遇到一个问题,因为 SSL/TLS 证书通常是为特定的域名颁发的,而不是 IP 地址。虽然可以为 IP 地址生成证书,但大多数证书颁发机构(CA)不支…...
Perturbed-Attention Guidance(PAG) 笔记
Self-Rectifying Diffusion Sampling with Perturbed-Attention Guidance Github 摘要 近期研究表明,扩散模型能够生成高质量样本,但其质量在很大程度上依赖于采样引导技术,如分类器引导(CG)和无分类器引导ÿ…...
自动驾驶控制与规划——Project 6: A* Route Planning
目录 零、任务介绍一、算法原理1.1 A* Algorithm1.2 启发函数 二、代码实现三、结果分析四、效果展示4.1 Dijkstra距离4.2 Manhatten距离4.3 欧几里德距离4.4 对角距离 五、后记 零、任务介绍 carla-ros-bridge/src/ros-bridge/carla_shenlan_projects/carla_shenlan_a_star_p…...
通俗易懂之线性回归时序预测PyTorch实践
线性回归(Linear Regression)是机器学习中最基本且广泛应用的算法之一。它不仅作为入门学习的经典案例,也是许多复杂模型的基础。本文将全面介绍线性回归的原理、应用,并通过一段PyTorch代码进行实践演示,帮助读者深入…...
[离线数仓] 总结二、Hive数仓分层开发
接 [离线数仓] 总结一、数据采集 5.8 数仓开发之ODS层 ODS层的设计要点如下: (1)ODS层的表结构设计依托于从业务系统同步过来的数据结构。 (2)ODS层要保存全部历史数据,故其压缩格式应选择压缩比率,较高的,此处选择gzip。 CompressedStorage - Apache Hive - Apac…...
页面顶部导航栏(Navbar)的功能(Navbar/index.vue)
这段代码是一个 Vue.js 组件,实现了页面顶部导航栏(Navbar)的功能。我将分块分析它的各个部分: 模板 (Template): <!-- spid-admin/src/layout/components/Navbar/index.vue --> <template><div class"navb…...
thinnkphp5.1和 thinkphp6以及nginx,apache 解决跨域问题
ThinkPHP 5.1 使用中间件设置响应头 ThinkPHP 5.1 及以上版本支持中间件,可以通过中间件统一设置跨域响应头。 步骤: 创建一个中间件文件,例如 CorsMiddleware.php: namespace app\middleware;class CorsMiddleware {public fu…...
vue2新增删除
(只是页面实现,不涉及数据库) list组件: <button click"onAdd">新增</button><el-table:header-cell-style"{ textAlign: center }" :cell-style"{ textAlign: center }":data&quo…...
测试ip端口-telnet开启与使用
前言 开发过程中我们总会要去测试ip通不通,或者ip下某个端口是否可以联通,为此我们可以使用telnet 命令来实现。 一、telnet 开启 可能有些人使用telnet报错,不是内部命令,可以如下开启: 1、打开控制面板ÿ…...
Python爬虫基础——XPath表达式
首先说一下这节内容在学习过程中存在的问题吧,在爬取百度网页文字时,出现了问题,就是通过表达式在网页搜索中可以定位,但是通过代码无法定位,请教了一位老师,他说是动态链接,目前这部分内容比较…...
ansible-性能优化
一. 简述: 搞过运维自动化工具的人,肯定会发现很多运维伙伴们经常用saltstack和ansible做比较,单从执行效率上来说,ansible确实比不上saltstack(ansible使用的是ssh,salt使用的是zeromq消息队列[暂没深入了解]),但其实…...
高等数学学习笔记 ☞ 一元函数微分的基础知识
1. 微分的定义 (1)定义:设函数在点的某领域内有定义,取附近的点,对应的函数值分别为和, 令,若可以表示成,则称函数在点是可微的。 【 若函数在点是可微的,则可以表达为】…...
前后端实现防抖节流实现
在前端和 Java 后端中实现防抖(Debounce)和节流(Throttle)主要用于减少频繁请求或事件触发对系统的压力。前端和后端的实现方式有些不同,以下是两种方法的具体实现: 1. 前端实现防抖和节流 在前端中&…...
【笔记】算法记录
1、求一个数的素因子(试除法) // 获取一个数的所有素因子 set<int> getPrimeFactors(int num) {set<int> primeFactors;for (int i 2; i * i < num; i) {while (num % i 0) {primeFactors.insert(i);num / i;}}if (num > 1) {prime…...
【网络云SRE运维开发】2025第2周-每日【2025/01/08】小测-【第8章 STP生成树协议】理论和实操解析
文章目录 一、选择题二、理论题三、实操题 【网络云SRE运维开发】2025第2周-每日【2025/01/08】小测-【第8章 STP生成树协议】理论和实操解析 一、选择题 生成树协议的主要作用是 B. 防止网络环路解释:生成树协议(STP)的主要目的是防止网络中…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
