ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

SDKMAN 备忘清单:Java 体系 SDK 版本管理工具完整实战指南

SDKMAN 备忘清单:Java 体系 SDK 版本管理工具完整实战指南 文档知识库教程开发工具【免费下载链接】reference为开发人员分享快速参考备忘清单(速查表)项目地址https://gitcode.com/jaywcjlove/reference点击查看免费下载SDKMAN 是一款专用于管理 Java 生态体系中各类 SDK 版本的命令行工具可运行在大多数基于 Unix 的系统上macOS、Linux以及通过 WSL 或 Git Bash 运行的 Windows。本指南以 docs/sdkman.md 为核心骨架系统梳理 SDKMAN 的安装、SDK 查询、安装卸载、版本切换、.sdkmanrc项目级环境配置、离线模式与全局配置等全部实战要点读完后你可以熟练地用一套命令搞定 Java、Groovy、Gradle、Maven、Spring Boot 等多版本 SDK 的安装与切换告别手工下载解压和 PATH 混乱。说明本文内容对应 jaywcjlove/reference 仓库中的 SDKMAN 速查文档该文档被收录在仓库首页「软件包管理器」分类下见 README.md与 APT、Conda、Cargo、Homebrew、Pacman、YUM 等包管理器并列是 Java 开发者日常使用的高频速查页。入门安装与初始化在 macOS/Linux 上安装SDKMAN 的官方安装方式是一行 curl 脚本把安装脚本下载下来直接交给 bash 执行curl -s https://get.sdkman.io | bash脚本会自动完成以下工作将 SDKMAN 安装到$HOME/.sdkman目录默认安装位置在~/.bashrc或~/.zshrc末尾追加初始化语句安装依赖的命令行工具如unzip、curl、zip等若缺失会提示先安装。在 Windows 上安装Windows 上不能直接运行 bash 脚本需要借助 Unix 兼容环境官方提供两种方式WSL Approach安装 WSLWindows Subsystem for Linux后在 WSL 的 Linux 发行版终端里执行同样的安装命令Git Bash Approach使用 Git for Windows 自带的 Git Bash 终端执行安装命令。两种方式下的安装命令与 macOS/Linux 完全一致curl -s https://get.sdkman.io | bash初始化 SDKMAN安装完成后当前终端会话还读不到sdk命令需要先手动加载初始化脚本新开终端通常已由.bashrc自动完成source $HOME/.sdkman/bin/sdkman-init.sh验证安装是否成功运行版本命令看到 SDKMAN 版本号即表示安装成功$ sdk version如果安装正常输出类似SDKMAN! script: 5.7.0 native: 0.1.3这里script指 SDKMAN 的脚本版本native指其原生命令native binary版本。获取帮助运行sdk help可获得基础的顶级帮助页面$ sdk help帮助页会列出 SDKMAN 全部可用子命令及其用途。还可以给 help 命令追加子命令名获取特定子命令的详细帮助$ sdk help install例如sdk help install会展示 install 子命令的完整语法、可用参数与示例是忘记用法时最快的查询途径。查看SDK 与版本查询列出所有可用的 SDKssdk list该命令会输出 SDKMAN 支持的全部候选 SDK 列表包括 Java、Groovy、Gradle、Maven、Kotlin、Scala、Spring Boot 等并标注每个 SDK 的当前默认版本与已安装版本。查看当前使用的 SDK 版本不带参数的sdk current会一次性列出当前 shell 中所有已激活使用的 SDK$ sdk currentcurrent后面也可以跟具体 SDK 名称只查询某一个$ sdk current java Using java version 21.0.2-tem上面的21.0.2-tem是版本标识符tem表示该版本由 Eclipse TemurinAdoptium发行版提供SDKMAN 的版本号格式为「版本号-发行商缩写」。查看特定 SDK 的版本列表$ sdk list java该命令列出 Java 的所有可安装版本输出中带标记的是当前正在使用的版本带*标记的是已安装的版本其余为可下载的候选版本。安装与卸载安装指定版本的 SDK$ sdk install java version将version替换为sdk list java中列出的任意版本标识即可例如sdk install java 21.0.2-tem。安装完成后 SDKMAN 会询问是否将该版本设为当前使用与默认版本。使用切换已安装的 SDKuse命令在当前 shell 会话内临时切换 SDK 版本不改变默认设置退出终端后失效$ sdk use java version卸载 SDK$ sdk uninstall java version卸载时也可以带上具体版本例如删除指定版本的 Scala$ sdk uninstall scala 3.4.1列出所有已安装的 SDKs$ sdk list installed该命令汇总展示本机已经通过 SDKMAN 安装的所有 SDK 及各自已安装的版本是管理本机 SDK 存量的一站式视图。更新与默认版本更新 SDKMAN 自身$ sdk selfupdate该命令检查并安装 SDKMAN 自身的新版本强制重新安装当前版本可加force参数$ sdk selfupdate forceSDKMAN 默认还会每天自动检查一次自身的新版本并代表用户执行更新可通过配置关闭见下文「配置」小节。更新已安装的 SDKs / 刷新 SDK 缓存$ sdk updateupdate用于刷新 SDKMAN 本地的候选 SDK 元数据缓存从而感知新增或移除的 SDK例如输出$ sdk update # Adding new candidate(s): kotlin当 SDK 元数据过时时使用相关命令会看到警告提示WARNING: SDKMAN is out-of-date and requires an update.此时运行sdk update即可刷新缓存。需要说明的是update只更新「可安装的 SDK 列表元数据」并不负责把已装的 SDK 升级到最新补丁版本。设置默认的 SDK 版本default命令把指定版本设为全局默认新开终端、新会话都会自动使用该版本$ sdk default java version安装本地版本自定义路径如果你正在使用快照版本或者本地已经手动安装好了某个 SDK可以跳过下载、直接通过指定本地路径把它注册进 SDKMAN$ sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT对于 JDK 这类带固定安装目录的 SDK 同样适用例如注册 macOS 上手动安装的 Zulu JDK$ sdk install java 17-zulu /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home注册后该本地版本就能像正常安装的版本一样被use、default等命令管理和切换。版本切换实践查看已安装的 SDKs$ sdk list installed临时切换使用特定版本$ sdk use java version $ sdk use scala 3.4.1use只影响当前终端会话适合临时验证某个版本。设置默认使用的 SDK 版本$ sdk default java version $ sdk default scala 3.4.1default全局生效适合确定长期使用的版本。查看当前使用的版本只查单个 SDK$ sdk current java Using java version 21.0.2-tem一次性查看所有 SDK$ sdk current Using: groovy: 4.0.20 java: 21.0.2-tem scala: 3.4.1配置 ENV项目级 SDK 版本管理.sdkmanrc这是 SDKMAN 最实用的功能之一把 SDK 版本与项目绑定而不是与全局环境绑定。生成 .sdkmanrc 配置文件在项目根目录执行$ sdk env initSDKMAN 会在当前目录生成一个.sdkmanrc配置文件内容大致如下# Enable auto-env through the sdkman_auto_env config # Add keyvalue pairs of SDKs to use below java21.0.2-tem文件采用sdk名版本的键值对格式可写入多个 SDK如 java、groovy、scala 各占一行。sdk env init会默认把当前正在使用的 SDK 版本写入文件。切换到 .sdkmanrc 中的配置手动激活项目环境$ sdk env # 您应该看到如下输出 # Using java version 21.0.2-tem in this shell.执行后当前 shell 即切换到.sdkmanrc中指定的版本组合。重置为默认版本$ sdk env clear该命令退出项目环境把 SDK 重置回全局默认版本。安装配置中缺失的 SDK$ sdk env install当.sdkmanrc里声明的某个 SDK 版本本机尚未安装时运行此命令可自动补装缺失的版本非常适合团队协作时快速拉起一致的开发环境。自动切换进入目录即生效想要在cd进入项目目录时自动切换到.sdkmanrc声明的版本需要在 SDKMAN 配置中开启sdkman_auto_envtrue注意开启后离开该目录时任何特定于项目的 SDK 都会被自动重置为默认版本这是设计上的预期行为。升级版本升级单个 SDK 到最新版本$ sdk upgrade springboot查看所有 SDK 的过时版本$ sdk upgrade不带参数运行时upgrade会列出所有已安装 SDK 中落后于最新版的项方便批量升级决策。其他实用命令sdk home获取 SDK 安装绝对路径$ sdk home java 21.0.2-tem # /home/myuser/.sdkman/candidates/java/21.0.2-tem该命令返回指定 SDK 版本的绝对安装路径可用于配置 IDE、设置JAVA_HOME或手动检查安装内容。SDKMAN 的所有候选 SDK 都统一存放在~/.sdkman/candidates/sdk名/版本目录下。sdk flush清理缓存SDKMAN 的缓存通常很少需要手动清理flush命令就是为了让你不必删除任何目录$ sdk flush请务必注意手动删除像.sdkman/tmp这样的目录会破坏 SDKMAN清理缓存请始终使用flush命令而不是直接删目录。离线模式启用强制离线模式$ sdk offline enable重新启用在线模式$ sdk offline disable离线模式下list等命令只显示本机已安装的版本。例如sdk list groovy的输出$ sdk list groovy # --------------------------- # # 离线模式仅显示已安装的groovy版本 # -------------------------- # # 2.4.4 # # - 2.4.3 # # -------------------------- # # - - installed # # - currently in use # # ---------------------------其中-表示已安装installed表示当前正在使用currently in use。离线模式也会根据互联网可用性自动启用/禁用网络不可用时自动切到离线网络恢复后自动切回在线。当然依赖网络的命令如install在离线时不会生效但会给出警告提示。SDKMAN 全局配置SDKMAN 的配置文件位于~/.sdkman/etc/config。可以用sdk-config命令在系统默认编辑器中直接打开该文件进行编辑。配置文件采用键值的 ini 格式可用配置项如下# 使 sdkman 成为非交互式的适用于 CI 环境 sdkman_auto_answertrue|false # 检查更新版本并提示更新 sdkman_selfupdate_featuretrue|false # 禁用 SSL 证书验证 # https://github.com/sdkman/sdkman-cli/issues/327 # HERE BE DRAGONS.... sdkman_insecure_ssltrue|false # 配置 curl 超时 sdkman_curl_connect_timeout5 sdkman_curl_continuetrue sdkman_curl_max_time10 # 订阅测试版频道 sdkman_beta_channeltrue|false # 启用详细调试 sdkman_debug_modetrue|false # 启用色彩模式 sdkman_colour_enabletrue|false # 启用自动环境 sdkman_auto_envtrue|false # 启用 bash 或 zsh 自动完成功能 sdkman_auto_completetrue|false各配置项的核心作用sdkman_auto_answer设为true后安装/卸载等过程中的交互式提问全部采用默认答案非交互运行适合 CI 流水线sdkman_selfupdate_feature控制是否检查 SDKMAN 自身新版本并提示更新设为false可关闭每日自动更新检查sdkman_insecure_ssl禁用 SSL 证书验证。该项涉及安全性官方用 HERE BE DRAGONS前方有龙警示仅应在企业内网证书场景下谨慎开启sdkman_curl_connect_timeout / sdkman_curl_max_time控制 curl 的连接超时与总超时时间秒sdkman_curl_continue控制是否允许断点续传网络不佳时可调大超时sdkman_beta_channel订阅测试版频道可提前体验 SDKMAN 的候选版本功能sdkman_debug_mode开启详细调试输出排查安装问题时很有用sdkman_colour_enable控制终端彩色输出sdkman_auto_env开启后cd进入含.sdkmanrc的目录时自动切换项目 SDK 环境见上文「配置 ENV」小节sdkman_auto_complete启用 bash 或 zsh 下的命令自动补全提升交互效率。速查命令一览表命令作用sdk version查看 SDKMAN 自身版本sdk help [subcommand]获取全局或某子命令帮助sdk list列出所有可用的 SDKssdk list sdk查看某 SDK 的可安装版本列表sdk list installed列出所有已安装的 SDKssdk current [sdk]查看当前使用的 SDK 版本sdk install sdk version安装指定版本的 SDKsdk install sdk version path注册本地已安装的 SDKsdk use sdk version当前会话临时切换版本sdk default sdk version设置全局默认版本sdk uninstall sdk version卸载指定版本sdk update刷新候选 SDK 元数据缓存sdk upgrade [sdk]查看过时版本 / 升级单个 SDKsdk selfupdate [force]更新 SDKMAN 自身sdk env init生成.sdkmanrc项目配置sdk env切换到.sdkmanrc配置sdk env clear重置回默认版本sdk env install安装.sdkmanrc中缺失的 SDKsdk home sdk version获取 SDK 安装绝对路径sdk flush清理 SDKMAN 缓存sdk offline enable/disable启用/禁用离线模式sdk-config在编辑器中打开全局配置文件结语SDKMAN 通过一套统一的命令体系解决了 Java 生态多版本 SDK 的安装、切换与项目级绑定问题。掌握install/use/default/uninstall四个核心动词即可完成日常 80% 的操作再配合.sdkmanrc项目环境sdk env init/sdk env/sdkman_auto_envtrue与离线模式即可在个人开发、团队协作、CI 构建和受限网络等多种场景下游刃有余地管理 JDK、Groovy、Gradle、Maven、Spring Boot 等全部 JVM 系 SDK。更完整的速查内容可随时查阅仓库内的 docs/sdkman.md 原始文档。赞分享文档知识库教程开发工具【免费下载链接】reference为开发人员分享快速参考备忘清单(速查表)项目地址https://gitcode.com/jaywcjlove/reference点击查看免费下载相关推荐SDKMAN 备忘清单Java 生态 SDK 版本管理器的安装、配置与实战速查SDKMAN 备忘清单Java 生态 SDK 版本管理器的安装、配置与实战速查 本指南以 Quick Reference 仓库中 docs/sdkman.md文档教程npm 备忘清单速查从包管理、npx 到 ESM 迁移的完整实战指南npm 备忘清单速查从包管理、npx 到 ESM 迁移的完整实战指南 本篇指南基于 jaywcjlove/reference 仓库中的 npm 备忘清单 ht文档知识库教程开发工具Java 备忘清单Java 语法速查与实战指南Quick Reference 项目Java 备忘清单Java 语法速查与实战指南Quick Reference 项目 本指南以当前仓库中的 docs/java.md https://lin文档教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表