1. 为什么选择 SDKMAN!?

传统的 brew install maven 只能安装最新版,且切换版本极其麻烦。SDKMAN! 专为 JVM 生态设计,支持并行安装多个版本的 Java、Maven、Gradle,并能实现一键秒级切换。


2. 突破网络瓶颈:解决 “INTERNET NOT REACHABLE”

在使用代理(如 Veee)时,终端往往无法直接感知,导致 SDKMAN! 报错。

  • INTERNET NOT REACHABLE = SDKMAN 连不上它的服务器(国内常见)

2.1 定义终端代理开关(一键开启)

在 ~/.zshrc 中添加以下别名,解决 curl 下载被重置(Connection Reset)的问题:

# 代理快捷开关 (假设端口为 1081)
alias proxyon="export http_proxy=http://127.0.0.1:1081; export https_proxy=http://127.0.0.1:1081; export all_proxy=socks5://127.0.0.1:1081; echo '终端代理已开启'"
alias proxyoff="unset http_proxy; unset https_proxy; unset all_proxy; echo '终端代理已关闭'"

执行 source ~/.zshrc 后,输入 proxyon 即可让终端走代理。

操作过程中,当只保留all_proxy配置时才成功链接网络

2.2 强制关闭健康检查

如果 SDKMAN! 依然提示断网,修改其配置文件:

nano ~/.sdkman/etc/config

将 sdkman_healthcheck_enable 设置为 false。

2.3 确认网络连接

  • 用 curl -I https://api.sdkman.io/2 可确认
#proxyoff
zwy@weiyedeMacBook-Pro ~ % curl -I https://api.sdkman.io/2
curl: (28) Failed to connect to api.sdkman.io port 443 after 75021 ms: Couldn't connect to server

#proxyon
zwy@weiyedeMacBook-Pro ~ % curl -I https://api.sdkman.io/2
HTTP/1.1 200 Connection established

curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api.sdkman.io:443

后来发现和代理无关,被公司网络安全拦截了,连接wifi可以正常访问

zwy@weiyedeMacBook-Pro ~ % curl -I https://api.sdkman.io/2 -x 127.0.0.1:15236
HTTP/1.1 200 Connection established

HTTP/1.1 404 Not Found
Server: nginx/1.19.10
Date: Fri, 03 Apr 2026 01:13:15 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive

3. Maven 多版本安装与切换

3.1 查找与安装

开启代理后,即可拉取云端版本列表:

sdk list maven          # 查看所有可用版本
sdk install maven 3.8.8 # 安装指定版本
sdk install maven 3.9.6 # 安装最新版本
sdk uninstall maven 3.9.6 #卸载版本:

3.2 版本切换

SDKMAN! 区分“全局默认”和“当前会话”两种模式:

  • 全局切换(永久有效):
sdk default maven 3.8.8
  • 当前窗口切换(临时有效):
sdk use maven 3.9.6

3.3 验证安装

注意: Maven 的命令行指令是 mvn 而不是 maven。

Bash

mvn -version

4. 进阶:与 IntelliJ IDEA 联动

为了让 IDE 识别 SDKMAN! 管理的版本,需要在 IDEA 设置中进行关联:

  1. 打开 Settings -> Build, Execution, Deployment -> Build Tools -> Maven。
  2. 找到 Maven home path,设置为以下路径:

/Users/你的用户名/.sdkman/candidates/maven/current

  1. 这样当你通过终端执行 sdk default 切换版本后,IDEA 会自动同步使用当前选中的 Maven。

5. 常见坑点排查

  • SSL_ERROR_SYSCALL: 如果下载时报错 SSL 错误,请确保使用了 socks5 协议的环境变量(见上文 proxyon 配置)。
  • Command not found: 确保 ~/.zshrc 末尾有以下初始化代码:
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
  • 清理残留: 如果安装中断导致后续失败,执行 rm -rf ~/.sdkman/tmp/* 后再重试。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐