当前位置: 首页 > news >正文

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填补版本 数据说明&#xf…...

Nginx不使用域名如何配置证书

如果你不打算使用域名而是使用 IP 地址来配置 Nginx 的 SSL 证书,你会遇到一个问题,因为 SSL/TLS 证书通常是为特定的域名颁发的,而不是 IP 地址。虽然可以为 IP 地址生成证书,但大多数证书颁发机构(CA)不支…...

Perturbed-Attention Guidance(PAG) 笔记

Self-Rectifying Diffusion Sampling with Perturbed-Attention Guidance Github 摘要 近期研究表明,扩散模型能够生成高质量样本,但其质量在很大程度上依赖于采样引导技术,如分类器引导(CG)和无分类器引导&#xff…...

自动驾驶控制与规划——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 组件&#xff0c;实现了页面顶部导航栏&#xff08;Navbar&#xff09;的功能。我将分块分析它的各个部分&#xff1a; 模板 (Template): <!-- spid-admin/src/layout/components/Navbar/index.vue --> <template><div class"navb…...

thinnkphp5.1和 thinkphp6以及nginx,apache 解决跨域问题

ThinkPHP 5.1 使用中间件设置响应头 ThinkPHP 5.1 及以上版本支持中间件&#xff0c;可以通过中间件统一设置跨域响应头。 步骤&#xff1a; 创建一个中间件文件&#xff0c;例如 CorsMiddleware.php&#xff1a; namespace app\middleware;class CorsMiddleware {public fu…...

vue2新增删除

&#xff08;只是页面实现&#xff0c;不涉及数据库&#xff09; list组件&#xff1a; <button click"onAdd">新增</button><el-table:header-cell-style"{ textAlign: center }" :cell-style"{ textAlign: center }":data&quo…...

测试ip端口-telnet开启与使用

前言 开发过程中我们总会要去测试ip通不通&#xff0c;或者ip下某个端口是否可以联通&#xff0c;为此我们可以使用telnet 命令来实现。 一、telnet 开启 可能有些人使用telnet报错&#xff0c;不是内部命令&#xff0c;可以如下开启&#xff1a; 1、打开控制面板&#xff…...

Python爬虫基础——XPath表达式

首先说一下这节内容在学习过程中存在的问题吧&#xff0c;在爬取百度网页文字时&#xff0c;出现了问题&#xff0c;就是通过表达式在网页搜索中可以定位&#xff0c;但是通过代码无法定位&#xff0c;请教了一位老师&#xff0c;他说是动态链接&#xff0c;目前这部分内容比较…...

ansible-性能优化

一. 简述&#xff1a; 搞过运维自动化工具的人&#xff0c;肯定会发现很多运维伙伴们经常用saltstack和ansible做比较&#xff0c;单从执行效率上来说&#xff0c;ansible确实比不上saltstack(ansible使用的是ssh,salt使用的是zeromq消息队列[暂没深入了解])&#xff0c;但其实…...

高等数学学习笔记 ☞ 一元函数微分的基础知识

1. 微分的定义 &#xff08;1&#xff09;定义&#xff1a;设函数在点的某领域内有定义&#xff0c;取附近的点&#xff0c;对应的函数值分别为和&#xff0c; 令&#xff0c;若可以表示成&#xff0c;则称函数在点是可微的。 【 若函数在点是可微的&#xff0c;则可以表达为】…...

前后端实现防抖节流实现

在前端和 Java 后端中实现防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;主要用于减少频繁请求或事件触发对系统的压力。前端和后端的实现方式有些不同&#xff0c;以下是两种方法的具体实现&#xff1a; 1. 前端实现防抖和节流 在前端中&…...

【笔记】算法记录

1、求一个数的素因子&#xff08;试除法&#xff09; // 获取一个数的所有素因子 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. 防止网络环路解释&#xff1a;生成树协议&#xff08;STP&#xff09;的主要目的是防止网络中…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...

【Ftrace 专栏】Ftrace 参考博文

ftrace、perf、bcc、bpftrace、ply、simple_perf的使用Ftrace 基本用法Linux 利用 ftrace 分析内核调用如何利用ftrace精确跟踪特定进程调度信息使用 ftrace 进行追踪延迟Linux-培训笔记-ftracehttps://www.kernel.org/doc/html/v4.18/trace/events.htmlhttps://blog.csdn.net/…...