记录一下项目使用的工具,目前环境的管理有以下几个:
这里主要讲一下 sdkman,我们项目是通过 sdkman 进行 java 和 maven 的管理,这个写的挺简单的,加上一个自己写的自己偶尔会用的脚本,查看当前所有安装版本的话,感觉加到 .zshrc
之类的 profile 里会比较方便一点。
目前看着感觉就是 sdk 只支持 unix 的环境,即 macOS, Linux 和 Windows (with WSL),反正官方文档上是没看到说能够直接在 win 环境下安装……
安装方式也很简单:
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk version
运行完后能看到正确的 sdk version 就算试运行成功了,比如说我这里:
❯ sdk version
SDKMAN 5.16.0
按照他们说的方法安装真的很简单……
我们这里主要用 sdkman 管理 java 和 maven,不过它支持的管理版本有:
以及其他,https://sdkman.io/sdks 建议还是到官方文档上去 ctrl+f 一下
这里以 java 为主,目前来说好像没办法直接指定 java 版本进行安装,比如说:
❯ sdk install java@17
Stop! java@17 is not a valid candidate.
❯ sdk install java17
Stop! java17 is not a valid candidate.
这里安装还是需要指定具体的安装版本:
❯ sdk list java
# 注意这里声明了安装 java + 版本
❯ sdk install java 17.0.8.1-ms
Downloading: java 17.0.8.1-ms
In progress...
######################################################################### 100.0%
Repackaging Java 17.0.8.1-ms...
Done repackaging...
Cleaning up residual files...
Installing: java 17.0.8.1-ms
Done installing!
Do you want java 17.0.8.1-ms to be set as default? (Y/n): n
这个应该是会 recursively 查看所有当前使用的版本:
❯ sdk current
Using:
java: 11.0.16-ms
maven: 3.6.3
sdkman 到现在居然都没有这个功能……我好难过……这个讨论在 ‘list installed’ command? #466 这个 thread 里。
有一位大兄弟说用这个指令:
❯ sdk offline enable && sdk list java && sdk offline disable
Offline mode enabled.
--------------------------------------------------------------------------------
Offline: only showing installed java versions
--------------------------------------------------------------------------------
* 17.0.4.1-ms
> 11.0.16-ms
--------------------------------------------------------------------------------
* - installed
> - currently in use
--------------------------------------------------------------------------------
Online mode re-enabled!
我试了一下,好像没有能够把我的所有版本全都列出来。
我自己的做法是:
❯ ls ~/.sdkman/candidates/* | grep -v "current"
/Users/username/.sdkman/candidates/java:
11.0.16-ms
17.0.4.1-ms
17.0.8.1-ms
/Users/username/.sdkman/candidates/maven:
3.6.3
/Users/username/.sdkman/candidates/tomcat:
如果想要 java 的话就把 *
换成 java 就行了:
❯ ls ~/.sdkman/candidates/java | grep -v "current"
11.0.16-ms
17.0.4.1-ms
17.0.8.1-ms
我是觉得我真的应该学一下终端了……
突然发现已经装过 java17 了,就打算移除一个 java17,顺便试试看操作
❯ sdk uninstall java 17.0.4.1-ms
Uninstalling java 17.0.4.1-ms...
❯ ls ~/.sdkman/candidates/java | grep -v "current"
11.0.16-ms
17.0.8.1-ms
反正挺快的,也挺方便的…… 0。0