使用asdf管理你的sdk

asdf是一个语言版本管理器.

现在假设在使用asdf的情况下,如果有两个项目ab,分别使用jdk-8jdk-17,那么管理的流程就是如下的

  1. 安装对应的jdk:asdf install java openjdk-8, asdf install java openjdk-17
  2. 分别进入ab两个目录,执行asdf local java openjdk-8,asdf local java openjdk-17

这个时候,当你在命令行进入对应的项目,你执行java -version就会对应不同的jdk版本

而且安装的jdk统一的都在~/.asdf.plugins/java目录下

下面简单说下安装以及使用,基本上是官方文档内容

安装

我是使用HomeBrew安装

1
2
3
brew install asdf

echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc

使用(以java为例)

plugin

asdf的语义中,plugin就是帮你管理对应语言sdk的模块,比如你需要下载是管理java的版本,你就需要下载对应的java plugin

搜索plugin

1
asdf plugin list all | grep java

安装plugin

1
asdf plugin add java

安装sdk

1
2
3
4
5
6
7
8
9
10
# 搜索jdk
asdf list all java | grep jdk

# 安装jdk
# 安装指定版本
asdf install java openjdk-17.0
# 安装指定版本的最新版本
asdf install java openjdk-17:latest
# 安装最新稳定版
asdf install java latest

设置

1
2
3
4
# 设置命令行使用的版本
asdf global java openjdk-17
# 设置当前路径使用的jdk版本,会在当前目录下生成一个.tool-versions文件
asdf local java openjdk-17

其他常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 查看当前各个sdk的版本
asdf current
# 查看当前java使用的sdk版本
asdf current java
# 查看安装那些plugin
asdf plugin list
# 查看当前使用的java 命令的路径
asdf which java
# 查看当前使用的java sdk的路径
asdf where java
# 移除对应的sdk
asdf uninstall java openjdk-17
# 移除对应的plugin
asdf plugin remove java
# 更新(所有)plugin
asdf plugin update [--all]

参考资料

asdf官方文档

Author

finger

Posted on

2023-09-26

Updated on

2025-06-11

Licensed under

Comments