mac安装不同版本的maven

各位同学入职不同的公司,有的公司使用的maven版本也有不同的,新手通常自己下载固定的文件,点击【下一步】的去安装,需要频繁的去安装卸载。

该篇文章实乃我的经验总结。

1:使用sdkman

Mac + SDKMAN 管理多套 Maven(和 JDK 一套工具,不用额外装别的)

SDKMAN 不光管 Java,原生支持 Maven 多版本切换,跟切换 JDK 操作语法几乎一模一样,完美适配你不同项目需要不同 Maven 版本的需求。 前提:你现在 sdkman 已经正常可用,jdk8、jdk17 都装好了,若各位同学不懂可以看我之前发布的文章。

1、查看可安装的 maven 版本

bash

复制代码
sdk list maven

会列出所有可用 Maven 版本,常用稳定版:

  • 3.8.8:兼容性很强,老项目、JDK8 首选
  • 3.9.9:新版本,适合 JDK17 + 新项目

3.8.8 老项目/JDK8 黄金稳定版

sdk install maven 3.8.8

3.9.9 新项目/JDK17 稳定版

sdk install maven 3.9.9

2:安装多个版本maven的命令

html 复制代码
# 安装 3.8.8(老项目,jdk8用)
sdk install maven 3.8.8

# 安装 3.9.9(新项目,jdk17用)
sdk install maven 3.9.9

这就是提示你安装成功了,我设置默认为3.9.9

3:Maven 版本切换(和 java 命令格式完全一样)

✅只对**当前这个终端窗口临时生效**,关掉终端就复原

sdk use maven 3.8.8

✅设置全局默认版本,新开终端也是这个版本

sdk default maven 3.9.9

4:验证是否生效

mvn -v

5:查看当前生效的 maven

sdk current maven

6:卸载某个 maven 版本

sdk uninstall maven 3.8.8

7:重要坑点(Mac 开发高频踩坑)

  1. sdkman 安装的 maven 路径 :~/.sdkman/candidates/maven/ 不要自己另外下载 dmg、brew 再装 maven!不要混用 brew 的 maven,会冲突。全程只用 sdkman 管理。

  2. IDEA 里面一定要注意!

终端切换的 JDK/Maven,不会自动同步给 IDEA! IDEA 需要单独设置:

  • File → Project Structure → Project Settings:选择项目 JDK
  • File → Settings → Build,Execution,Deployment → Build Tools → Maven:选择 Maven home 路径,指向 sdkman 下面对应版本的 maven。
  1. maven 本地仓库 settings.xml sdkman 装的 maven 不会自带 settings.xml。 统一配置仓库:建议自己在 ~/.m2/ 下面放一份settings.xml,所有 maven 版本共用一份镜像配置,不用每个 maven 复制一份。

8:修改maven里面的setting配置文件

/Users/你的姓名/.sdkman/candidates/maven/3.9.9/conf/settings.xml

Users/你的姓名/.sdkman/candidates/maven/ 【其实在这里你就可以看见你安装了两个不同的版本maven】

我的习惯是在这个里面的conf文件下载创建多个不同的setting文件,需要那个就改那个名字,例如setting1,2,使用的时候把1 或者2 删除掉就行了。每次都更改文件夹名称

其他的同学不明白可以单独创建文件夹

/Users/用户名称/.m2/settings‑company.xml

/Users/用户名称//.m2/settings‑mine.xml

我喜欢所有的东西写上注释,节省时间。但是有的时候有的地方不要写注释,对你们未来有帮助

相关推荐
daidaidaiyu7 小时前
ThingsBoard 集群的核心逻辑源码分析
java
我可能是个假开发7 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
caoerzhong8 小时前
中小企业上 WMS 该先上哪几块:JeeWMS 开源 Java 仓库管理系统的分批上线清单
java·python·开源
【JAVA】玩家9 小时前
Spring核心原理全解析:从零到生产实战
java·后端·spring
Wang's Blog9 小时前
Java框架 SpringCloud 快速入门: 实现 Feign 最佳实践(抽取方式)
java·spring cloud
MandalaO_O10 小时前
IDEA 开发(快捷键 + 调试 + 序列化)
java·ide·intellij-idea
xiaoqiMikko11 小时前
JVM 线上排查实战(七):jps 看不见它、jstack 连不上它,可它明明活得好好的
java·jvm
狼爷11 小时前
Rust/Go/Java/Python/PHP 大比拼:负载下后端框架到底差多少?
java·后端·编程语言
念何架构之路11 小时前
zap扩展生态与总结
java·前端·数据库
第七页独白12 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库