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

Maven 必备技能:MAC 系统下 JDK和Maven 安装及环境变量配置详细讲解

开发中难免因系统问题或者版本变更反复折腾JDK和Maven环境变量,干脆写个笔记备忘个,也方便小伙伴们节省时间。

=================JDK安装与环境变量配置======

1.官网下载jdk mac安装包: Java Downloads | Oracle

" https://www.oracle.com/java/technologies/downloads/#java8-mac "【jdk8及以下版本需要oracle账号登录才能登录才能下载,如果没有先注册一下】。

默认下载目录: ~/Downloads

2.解压复制到自定义的工作路径:

.dmg格式的安装包,直接下一步下一步一路走完安装就行

最后配置环境变量,便于系统中maven等需要依赖调用jdk的软件能够正确识别调用jdk

3.jdk环境变量配置

3.1 打开配置文件,在最末尾添加jdk环境变量配置,并保存

# 不同命令终端读取的配置文件可能不太一样,这里可以在两个主要配置文件中都写入环境变量,省很多麻烦
open ~/.bash_profile
open ~/.zshrc

写入jdk环境变量配置 

# JDK JAVA_HOME
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
export CLASS_PATH="$JAVA_HOME/lib"
export PATH=".$PATH:$JAVA_HOME/bin"

MacOS dmg安装无需像linux下解压安装那样建立软链接,直接用命令查看版本和运行java命令测试即可:

java -version
# 只适用于jdk 1.8 及以下版本
# 更高版本中间是两个短线,即
# java --version

3.2 如何找到jdk的绝对目录呢?

有个小技巧,使用macOS自带的Finder补全功能从“/Library/Java/JavaVirtualMachines”按tab键逐层往下找:直到 .../Home, 其他版本配置时候可以参考

================ Maven 环境变量配置 ====================


1、概述
本文主要为在 MAC 苹果系统下安装 Maven 及环境变量配置

Maven 是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。

2、Maven 下载

 2.1.官网下载

Maven – Download Apache Maven “https://maven.apache.org/download.cgi”

MacOS默认是存在~/Downloads (中文系统对应:~/下载)目录下,

cd ~/Downloads
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz# 或打开网页链接手动点击下载可执行二进制文件的bin 安装包
tar -xvf apache-maven-3.8.8-bin.tar.gz
# 解压后文件夹为apache-maven-3.8.8

2.2.解压至maven 工作目录(可自行指定)

本人是建立在 ~/Documents/env/maven下

mkdir ~/Documents/env
mkdir ~/Documents/env/maven

3. 复制解压后的maven文件夹到  ~/Documents/env/maven 目录下

cp -rf ~/Downloads/apache-maven-3.8.8 ~/Documents/env/maven/
# 进入目标工作目录 
cd /Users/你的用户名/Documents/env/maven/apache-maven-3.8.8/bin
pwd  # 检查确认当前所在目录
ls # 检查mvn等可执行文件和相关文件是否齐全

3、Maven 环境配置
3.1、Java JDK 依赖
配置 maven 环境变量需要先配置好 JDK 环境
MAC 系统安装 JDK 及环境变量配置

3.2、打开环境变量文件
打开终端窗口,执行如下命令

# 进入当前用户的 home 目录
cd /Users/修改为自己 MAC 电脑用户名称

# 输入

cd ~

# 打开环境变量配置文件

open ~/.bash_profile


 
3.3、配置 maven 环境变量
# 复制如下内容,MAVEN_HOME 替换为自己目录

export MAVEN_HOME=/Users/tony/Documents/env/maven/apache-maven-3.8.8/bin
export PATH=$MAVEN_HOME/bin:$PATH:.


# 配置文件立即生效

source .bash_profile

# 查看 MAVEN_HOME 目录

echo $MAVEN_HOME



3.4、检查环境变量
# 查看 maven 版本信息

mvn -v

Maven环境变量配置其他补充参考:(酌情参考)

1. 下载安装包。

从官网(Maven – Download Apache Maven)下载 Maven 并解压。

选择  apache-maven-3.9.1-bin.tar.gz

2. 配置 Maven 环境变量。

① 打开终端 ,

如果使用的shell 是 bash    输入vim ~/.bash_profile。

如果使用的shell 是 zsh     输入  vim ~/.zshrc

② 输入i进入编辑模式,然后输入 Maven 的环境变量:

export M2_HOME=/Users/arctic.kong/Documents/dev_software/apache-maven-3.8.8
export PATH=$PATH:$M2_HOME/bin

通过echo $JAVA_HOME查看是否配置过 JAVA_HOME ,如果 JAVA_HOME 没有配置,还需要导入 JAVA_HOME 环境变量:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home

③ 编辑完后,按esc退出编辑,并输入:wq保存并退出。

④ 输入source ~/.bash_profile   或者   source ~/.zshrc  使环境变量生效。

⑤ 输入mvn -v查看 Maven 否安装成功。

3.  进行setting.xml文件的配置,需要aliyun的镜像文件下载地址和下载依赖文件的仓库位置

打开你下载的Maven:

apache-maven-3.6.1 ➡️ conf ➡️ settings.xml然后进行编辑

3.1  配置私有仓库位置

替换成自己的位置 /Users/arctic.kong/Documents/dev_software/apache-maven-3.8.8/local_repo 

3.2 配置阿里云镜像

<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>

用以下内容替换上面代码
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
 

4、准备工作已经完成,下面就可以去Idea中进行使用了

打开idea的项目后进行setting设置

Maven home path是你下载的maven的路径

User setting file是Maven的setting.xml文件的路径

Local repository是你自己创建的放置依赖文件的仓库(最好创建在和maven同级别下)

注意⚠️:Override的✅一定要勾上要不然没有办法选择

最后点击OK即可使用

相关文章:

Maven 必备技能:MAC 系统下 JDK和Maven 安装及环境变量配置详细讲解

开发中难免因系统问题或者版本变更反复折腾JDK和Maven环境变量&#xff0c;干脆写个笔记备忘个&#xff0c;也方便小伙伴们节省时间。 JDK安装与环境变量配置 1.官网下载jdk mac安装包: Java Downloads | Oracle " https://www.oracle.com/java/technologies/downloads…...

electron笔记无边框窗口、DLL调用、DLL函数返回指针

无边框 const win new BrowserWindow({width: 1290,height: 736,minHeight: 736,minWidth: 1040,maxHeight: 736,maxWidth: 1290,frame: false, // 无边框webPreferences: {// preload: process.env.WEBPACK_DEV_SERVER_URL ? __dirname /preload.js : app://./preload.js,…...

递归算法学习——黄金矿工,不同路径III

目录 ​编辑 一&#xff0c;黄金矿工 1.题意 2.题目分析 3.题目接口 4.解题思路及代码 二&#xff0c;不同路径III 1.题意 2.解释 3.题目接口 4.解题思路及代码 一&#xff0c;黄金矿工 1.题意 你要开发一座金矿&#xff0c;地质勘测学家已经探明了这座金矿中的资源…...

pg 创建分区表 --chatGpt

问&#xff1a;postgreSql 创建表 addresses&#xff08;id,mkey,pri,addr),其中 id自增且id值会超过上百亿&#xff0c;mkey长度为8且唯一的字符串&#xff0c;pri长度64的字符串,addr长度64的字符串,用散列分区的方式创建 gpt: 你可以使用 PostgreSQL 来创建一个包含散列分…...

长城网络靶场,第一题笔记

黑客使用了哪款扫描工具对论坛进行了扫描&#xff1f;&#xff08;小写简称&#xff09; 第一关&#xff0c;第三小题的答案是awvs 思路是先统计查询 然后过滤ip检查流量 过滤语句&#xff1a;tcp and ip.addr ip 114.240179.133没有 第二个101.36.79.67 之后找到了一个…...

el-form表单中不同数据类型对应的时间格式化和校验规则

1. 在表单中, 当选择不同的数据类型时, 需要在下面选择时间时和数据类型对应上, 通过监听数据类型的变化, 给时间做格式化, 2. 但是当不按顺序选择数据类型后, 再选时间可能会报错, 所以需要在dom更新后, 再清空表单. 3. 校验规则, 结束时间需要大于开始时间, 但是不能选当前的…...

Python代码雨

系列文章 序号文章目录直达链接1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595.blog.csdn.net/article/details/1295031234漂浮爱心https://want…...

java.util.Optional

原文链接 文章目录 1、Optional作用2、常用API构造相关get / orElse / orElseGet / orElseThrowisPresent / ifPresentfiltermap / flatMap 3、源码翻译 1、Optional作用 类位于&#xff1a;java.util.Optional臭名昭著的空指针异常是导致Java应用程序失败的最常见原因&#…...

微服务--Seata(分布式事务)

TCC模式在代码中实现&#xff1a;侵入性强&#xff0c;并且的自己实现事务控制逻辑 Try&#xff0c;Confirm() cancel() 第三方开源框架&#xff1a;BeyeTCC\TCC-transaction\Himly 异步实现&#xff1a;MQ可靠消息最终一致性 GlobalTransacational---AT模式...

发光太阳聚光器的蒙特卡洛光线追踪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

(涨知识)-圣诞灯串类产品出口都需要做哪些认证?

1. 首先我们讲讲欧盟&#xff0c; 欧盟一向都是合规要求特别多的一个国家&#xff0c;所以向欧盟出口灯串等电子产品&#xff0c;一定要长个心眼。废话不多说&#xff0c;进入正题吧&#xff01; ①欧盟产品安全&#xff1a;欧代CE(电磁指令EMC低压指令LVD)DOC 产品安全必备三件…...

ROS地图/像素坐标描点调试【Python源码实现】

文章目录 ROS python 地图描点调试工具1. Rviz描点1.1 需求描述1.2 visualization Marker1.3 工程实践 2. 静态地图图片描点2.1 需求描述2.2 工程实践 ROS python 地图描点调试工具 1. Rviz描点 1.1 需求描述 在ROS开发中&#xff0c;有时会加载图片文件转为地图载入move_ba…...

2023年7月京东笔记本电脑行业品牌销售排行榜(京东数据平台)

随着智能手机、平板电脑等移动互联设备的普及&#xff0c;人们对于个人电脑的依赖减轻&#xff0c;加之电脑的更换率较低&#xff0c;因此当前PC端消费市场整体出现疲态&#xff0c;笔记本电脑的出货量不断下降&#xff0c;今年7月份也同样呈现这一趋势。 根据鲸参谋电商数据分…...

用户忠诚度:小程序积分商城的用户保持方法

随着移动互联网的蓬勃发展&#xff0c;小程序积分商城已经成为了许多企业私域营销的热门选择。这个商城不仅可以吸引用户参与&#xff0c;还可以提高用户的忠诚度&#xff0c;进一步加深用户与品牌的互动关系。然而&#xff0c;要实现用户的忠诚度&#xff0c;需要一系列的策略…...

[前端] 使用lerna version更新版本号

lerna version 是一个用于管理 monorepo&#xff08;多包存储库&#xff09;的工具&#xff0c;它可以帮助您在多个相关包之间协调版本号的更新和发布。以下是使用 lerna version 更新版本号的一般步骤&#xff1a; 安装 Lerna&#xff1a; 首先&#xff0c;您需要在您的项目中…...

winform嵌入浏览器 webView2

1、项目引用nuget 2、winform窗体中初始化 var webView new WebView2();webView.Source new Uri(url);webView.Dock DockStyle.Fill;//接收js调用c#函数的消息webView.WebMessageReceived CoreWebView2_WebMessageReceivedAsync; this.panel1.Controls.Add(…...

stm32---用外部中断实现红外接收器

一、红外遥控的原理 红外遥控是一种无线、非接触控制技术&#xff0c;具有抗干扰能力强&#xff0c;信息传 输可靠&#xff0c;功耗低&#xff0c;成本低&#xff0c;易实现等显著优点&#xff0c;被诸多电子设备特别是 家用电器广泛采用&#xff0c;并越来越多的应用到计算机系…...

Filter过滤器及HttpServletRequest和HttpServletResponse

拦截器&#xff08;Interceptor&#xff09;和过滤器&#xff08;Filter&#xff09;的执行顺序 tomcat->Filter->Interceptor->Controller 过滤器&#xff08;Filter&#xff09;概述&#xff1f; Filter过滤器是JavaWeb的三大组件之一&#xff0c;三大组件分别为&…...

02-打包代码与依赖

打包代码与依赖说明 在开发中&#xff0c;我们写的应用程序通常需要依赖第三方的库&#xff08;即程序中引入了既不在 org.apache.spark包&#xff0c;也不再语言运行时的库的依赖&#xff09;&#xff0c;我们就需要确保所有的依赖在Spark应用运行时都能被找到 对于Python而…...

Kotlin(五) 循环语句

目录 For循环 关键字 until step downTo Java中主要有两种循环语句&#xff1a;while循环和for循环。而Kotlin也提供了while循环和for循环&#xff0c;其中while循环不管是在语法还是使用技巧上都和Java中的while循环没有任何区别&#xff0c;因此我们就直接跳过不进行讲解…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...