Java 有很多的框架,工具,以及基于jdk的其他编程语言( Groovy , Scala ,clojure, Kotlin 等)的子生态;有没有什么工具能够统一的管理jdk生态下的各种软件工具呢?sdkman横空出世。
SDKMAN!是一种 在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了方便的命令行界面(CLI)和API,用于安装,切换,删除和列出候选人。以前称为GVM的Groovy环境管理器,它受到了非常有用的RVM 和 rbenv工具的启发,这些工具在Ruby社区中大量使用。
闪光点
- 让生活更轻松。不再拖网下载页面,提取档案,搞乱_HOME和PATH环境变量。
- 在任何基于UNIX的平台上运行:Mac OSX,Linux,Cygwin,Solaris和 FreeBSD 。
- 为JVM安装软件开发工具包,例如Java,Groovy,Scala,Kotlin和Ceylon。还支持Ant, gradle ,Grails,Maven,SBT,Spark,Spring Boot,Vert.x等等。
- 开放Broker REST API可以轻松编写新客户端。供应商可以通过安全的Vendor API发布和发布自己的版本。
- 用bash编写,只需要 curl和zip / unzip 就可以出现在你的系统上。甚至也适用于ZSH。
安装
curl -s "" | bash
用法举例
超级简单的用法
查看软件包
sdk list
sdk list java
输出
================================================================================ Available Java Versions ================================================================================ 19.0.0-grl 11.0.2-zulufx 13.ea.21-open 10.0.2-zulu 12.0.1-sapmchn 10.0.2-open 12.0.1-zulu 9.0.7-zulu 12.0.1-open 9.0.4-open 12.0.1.j9-adpt 8.0.212-zulu 12.0.1.hs-adpt 8.0.212-amzn 12.0.1-librca 8.0.212.j9-adpt 11.0.3-sapmchn 8.0.212.hs-adpt 11.0.3-zulu 8.0.212-librca 11.0.3-amzn 8.0.202-zulufx 11.0.3.j9-adpt 7.0.222-zulu 11.0.3.hs-adpt 6.0.119-zulu 11.0.3-librca 1.0.0-rc-16-grl 11.0.2-open 1.0.0-rc-15-grl ================================================================================ + - local version * - installed > - currently in use ================================================================================
比如需要安装jdk
sdk install java
或者指定安装的版本
sdk install java 11.0.3-zulu
安装本地版本
sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT
删除已安装的版本。
sdk uninstall scala 2.11.6
切换版本
如果sdk安装了多个版本的 开发环境 ,可以通过以下命令进行切换
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 broadcast ==== BROADCAST ================================================================= * 06/12/16: Scala 2.12.1 released on SDKMAN! #scala * 23/11/16: Gradle 3.2.1 released on SDKMAN! #gradle * 22/11/16: Ceylon 1.3.1 released on SDKMAN! #ceylonlang ================================================================================
自我更新
安装新版本的SDKMAN!如果可供使用的话。
sdk selfupdate
配置相关
下载后的文件在~/.sdkman目录中