是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API来安装,切换,删除和列出sdk相关信息。以下是一些特性:
* By Developers, for Developers
安装SDK不再需要去各种下载页面去下载,解压,以及设置xxx_HOME或者PATH环境变量.
* 多平台
可以在任何基于UNIX的平台上运行:Mac OSX,Linux,Cygwin,Solaris和FreeBSD。 Powershell CLI版本适用于Windows用户。
* 全套JAVA支持
为Java,Groovy,Scala,Kotlin和Ceylon等JVM安装软件开发工具包。 Ant,Gradle,Grails,Maven,SBT,Spark,Spring Boot,Vert.x以及其他许多支持。
* APIs
使用开放的Broker REST API可以轻松地编写新的客户端。供应商可以通过安全的供应商API发布自己的版本。
* 轻量
只需要有curl \ zip/unzip就可以在bash中通过命令使用.还可和ZSH一起使用.
在终端中输入以下命令进行安装:
$ curl -s "https://get.sdkman.io" | bash
如果提示缺少zip或unzip,安装后再次执行上面的命令即可.
# 安装需要的组件,Ubuntu为例
$ apt install zip
$ apt install unzip
安装完成后,在终端中输入:
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
输入以下命令查看安装情况:
$ sdk version
# 以下为输出
==== BROADCAST =================================================================
* 09/01/18: Gradle 4.5-rc-1 released on SDKMAN! #gradle
* 06/01/18: sbt 1.1.0 released on SDKMAN! #scala
* 20/12/17: Gradle 4.4.1 released on SDKMAN! #gradle
================================================================================
SDKMAN 5.6.0+287
SDKMAN的默认安装位置为:$HOME/.sdkman.你可以通过设置SDKMAN_DIR环境变量来修改安装位置:
$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
SDKMAN的Bate版,包含一些cli的新功能,但是可能会不稳定.如果需要使用Bate版本,需要修改~/.sdkman/etc/config文件:
sdkman_beta_channel=true
然后打开一个终端执行:
$ sdk selfupdate force
如果不需要使用Bate版本了,将上面的配置修改为false,再执行一次更新即可.
SDKMAN!没有提供自动化的卸载方法,可以通过以下命令进行卸载:
tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
$ rm -rf ~/.sdkman
然后从.bashrc,.bash_profile和/或.profile文件中编辑和删除初始化代码片段。如果您使用ZSH,请将其从.zshrc文件中删除。要删除的代码片段如下所示:
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
[[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"
$ sdk list
# 执行命令后进入vi模式进行阅读,q退出阅读
$ sdk list gradle
================================================================================
Available Gradle Versions
================================================================================
4.5-rc-1 4.2.1 3.1 2.11
> * 4.4.1 4.2-rc-2 3.0 2.10
4.4-rc-6 4.2-rc-1 2.9 2.1
4.4-rc-5 4.2 2.8 2.0
4.4-rc-4 4.1 2.7 1.9
4.4-rc-3 4.0.2 2.6 1.8
4.4-rc-2 4.0.1 2.5 1.7
4.4-rc-1 4.0 2.4 1.6
4.4 3.5.1 2.3 1.5
4.3.1 3.5 2.2.1 1.4
4.3-rc-4 3.4.1 2.2 1.3
4.3-rc-3 3.4 2.14.1 1.2
4.3-rc-2 3.3 2.14 1.12
4.3-rc-1 3.2.1 2.13 1.11
4.3 3.2 2.12 1.10
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
$ sdk install gradle
Downloading: gradle 4.4.1
In progress...
######################################################################## 100.0%
Installing: gradle 4.4.1
Done installing!
Setting gradle 4.4.1 as default.
# 后面跟上版本号即可
$ sdk install gradle 4.4.1
$ sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT
$ sdk uninstall scala 2.11.6
选择一个版本用于当前终端:
$ sdk use scala 2.12.1
$ sdk default scala 2.11.6
$ sdk current java
Using java version 8u111
#查看所有本地包的当前版本
$ sdk current
Using:
groovy: 2.4.7
java: 8u111
scala: 2.12.1
$ sdk upgrade springboot
Upgrade:
springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 1.2.5.RELEASE)
# 本地所有sdk全部升级
$ sdk upgrade
Upgrade:
gradle (2.3, 1.11, 2.4, 2.5 < 2.6)
grails (2.5.1 < 3.0.4)
springboot (1.2.4.RELEASE, 1.2.3.RELEASE < 1.2.5.RELEASE)
$ sdk offline enable
Forced offline mode enabled.
$ sdk offline disable
Online mode re-enabled!
当电脑没有网的时候,离线模式会进行自动切换.
$ sdk selfupdate
# 强制重新安装
$ sdk selfupdate force