使用SDKMAN(前身为gvm)来安装Java和Groovy的SDK
我转世为gvm。
以前使用gvm工具来安装和管理Grails、Groovy等产品,但现在它已经变成了一个名为SDKMAN的产品。
SDKMAN(Github)- 开发工具管理器
在过去,我们在GVM中处理Groovy家族的产品。但是在SDKMAN中,我们可以跨越这个界限,轻松地安装和管理JVM家族的产品。
2016/12/14 追加
现在,SDKMAN 可以安装和管理 JDK(OracleJava)!
目前,有以下 25 个产品可以通过 SDKMAN 进行安装和管理。
Ant1.9.7https://ant.apache.org/AsciidoctorJ1.5.4.1http://asciidoctor.org/Ceylon1.3.1http://ceylon-lang.org/CRaSH1.3.0http://www.crashub.org/Gaiden1.1http://kobo.github.io/gaiden/Glide0.9.2http://glide-gae.appspot.com/Gradle3.2.1http://gradle.org/Grails3.2.3https://grails.org/Griffon1.5.0http://griffon-framework.org/Groovy2.4.7http://www.groovy-lang.org/GroovyServ1.1.0https://kobo.github.io/groovyserv/Java8u111http://www.oracle.com/technetwork/java/javaseJBake2.5.0http://jbake.org/JBossForge2.17.0.Finalhttp://forge.jboss.org/Kobalt0.720http://beust.com/kobaltKotlin1.0.5-2https://kotlinlang.org/Lazybones0.8.3https://github.com/pledbrook/lazybones/Leiningen2.7.1http://leiningen.org/Maven3.3.9https://maven.apache.org/sbt0.13.13http://www.scala-sbt.org/Scala2.12.0http://www.scala-lang.org/SpringBoot1.4.2.RELEASEhttp://projects.spring.io/spring-boot/Sshoogr0.9.25https://github.com/aestasit/sshoogrVert.x3.3.3http://vertx.io/
根据您所看到的,您可以在编程语言中安装Scala、Ceylon、Java,这些语言常见的工具如Spring Boot和Maven也可以安装。
通过SDKMAN安装这些工具,您可以轻松切换版本,而且不需要手动设置路径。
所有文件都会存储在$HOME/.sdkman目录下,因此不会破坏系统环境。
当每个新产品版本发布时,你可以相当快地从SDKMAN上获取到可用的SDK(基本上当天就可以)。
安装
先前的Github的README文件中有這個信息。
到2015年12月22日為止,只需要執行curl -s api.sdkman.io | bash這個命令就可以了。
安裝完成後,只需要重新啟動終端或執行source .sdkman/bin/sdkman-init.sh命令就可以了。
嗯,如果通過curl -s api.sdkman.io | bash命令安裝完成後,只需要重新啟動終端,如果不清楚的話,只需要重新啟動操作系統就可以了。
如果已经安装了gvm,执行gvm –help等命令会询问是否要升级。
(从以下示例可以看出来,gvm没有–help这个命令。。。只要运行gvm,它会检查更新,然后告诉你sdkman已经发布了!真是友善!)
请注意,从gvm升级至sdkman后,~/.gvm目录将被删除。
基本上只需将其迁移到~/.sdkman目录即可,不会出现问题,但如果不放心,建议提前备份。
此外,如果您在像IntelliJ这样的集成开发环境中引用了.gvm目录中的Grails或Groovy等内容,则需要更改至~/.sdkman来进行访问。环境变量也是同样情况。
以下是我升级sdkman时的日志。
kkuwana% gvm --help
==== BROADCAST =================================================================
* 14/09/15: Grails 3.0.7 has been released on GVM. #grailsfw
* 14/09/15: Grails 3.1.0.M1 has been released on GVM. #grailsfw
* 14/09/15: Gradle 2.7 has been released on GVM. #gradle
================================================================================
Invalid command: --help
Usage: gvm <command> <candidate> [version]
gvm offline <enable|disable>
commands:
install or i <candidate> [version]
uninstall or rm <candidate> <version>
list or ls <candidate>
use or u <candidate> [version]
default or d <candidate> [version]
current or c [candidate]
outdated or o [candidate]
version or v
broadcast or b
help or h
offline <enable|disable>
selfupdate [force]
flush <candidates|broadcast|archives|temp>
candidate : asciidoctorj, crash, gaiden, glide, gradle, grails, griffon, groovy, groovyserv, jbake, lazybones, springboot, vertx
version : where optional, defaults to latest stable if not provided
eg: gvm install groovy
ATTENTION: A new version of GVM is available...
The current version is 3.0.0, but you have 2.4.1.
Would you like to upgrade now? (Y/n)Y
GVM has been detected on your system...
This update will upgrade GVM to SDKMAN!
Do you want to continue with the upgrade? (Y/n)Y
Thanks for upgrading to...
SSSSSSSSSSSSSSS DDDDDDDDDDDDD KKKKKKKKK KKKKKKK
SS:::::::::::::::SD::::::::::::DDD K:::::::K K:::::K
S:::::SSSSSS::::::SD:::::::::::::::DD K:::::::K K:::::K
S:::::S SSSSSSSDDD:::::DDDDD:::::D K:::::::K K::::::K
S:::::S D:::::D D:::::DKK::::::K K:::::KKK
S:::::S D:::::D D:::::D K:::::K K:::::K
S::::SSSS D:::::D D:::::D K::::::K:::::K
SS::::::SSSSS D:::::D D:::::D K:::::::::::K
SSS::::::::SS D:::::D D:::::D K:::::::::::K
SSSSSS::::S D:::::D D:::::D K::::::K:::::K
S:::::S D:::::D D:::::D K:::::K K:::::K
S:::::S D:::::D D:::::DKK::::::K K:::::KKK
SSSSSSS S:::::SDDD:::::DDDDD:::::D K:::::::K K::::::K
S::::::SSSSSS:::::SD:::::::::::::::DD K:::::::K K:::::K
S:::::::::::::::SS D::::::::::::DDD K:::::::K K:::::K
SSSSSSSSSSSSSSS DDDDDDDDDDDDD KKKKKKKKK KKKKKKK
mmmmmmm mmmmmmm aaaaaaaaaaaaa nnnn nnnnnnnn
mm:::::::m m:::::::mm a::::::::::::a n:::nn::::::::nn
m::::::::::mm::::::::::m aaaaaaaaa:::::an::::::::::::::nn
m::::::::::::::::::::::m a::::ann:::::::::::::::n
m:::::mmm::::::mmm:::::m aaaaaaa:::::a n:::::nnnn:::::n
m::::m m::::m m::::m aa::::::::::::a n::::n n::::n
m::::m m::::m m::::m a::::aaaa::::::a n::::n n::::n
m::::m m::::m m::::ma::::a a:::::a n::::n n::::n
m::::m m::::m m::::ma::::a a:::::a n::::n n::::n
m::::m m::::m m::::ma:::::aaaa::::::a n::::n n::::n
m::::m m::::m m::::m a::::::::::aa:::a n::::n n::::n
mmmmmm mmmmmm mmmmmm aaaaaaaaaa aaaa nnnnnn nnnnnn
Updating SDKMAN...
Successfully upgraded SDKMAN.
Please open a new terminal, or run the following in the existing one:
export SDKMAN_DIR="/home/k-kuwana/.sdkman" && source "/home/k-kuwana/.sdkman/bin/sdkman-init.sh"
touch: `/home/k-kuwana/.gvm/var/delay_upgrade' に touch できません: そのようなファイルやディレクトリはありません
kkuwana%
有一些错误,但暂时先忽略…
接下来,根据消息执行导出操作。
kkuwana% export SDKMAN_DIR="/home/k-kuwana/.sdkman" && source "/home/k-kuwana/.sdkman/bin/sdkman-init.sh"
尝试使用
这个命令被命名为”sdk”,以确保它与其他完全不同的命令不发生冲突。
暂时将帮助信息显示出来。
kkuwana% sdk help
Usage: sdk <command> <candidate> [version]
sdk offline <enable|disable>
commands:
install or i <candidate> [version]
uninstall or rm <candidate> <version>
list or ls <candidate>
use or u <candidate> [version]
default or d <candidate> [version]
current or c [candidate]
outdated or o [candidate]
version or v
broadcast or b
help or h
offline <enable|disable>
selfupdate [force]
flush <candidates|broadcast|archives|temp>
candidate : asciidoctorj, crash, gaiden, glide, gradle, grails, griffon, groovy, groovyserv, jbake, jbossforge, lazybones, springboot, vertx
version : where optional, defaults to latest stable if not provided
eg: sdk install groovy
kkuwana%
我尝试提供类似于 gvm 的功能。这是一份可供使用的 Groovy 列表。
kkuwana% sdk list groovy
================================================================================
Available Groovy Versions
================================================================================
2.4.4 2.3.1 2.0.8 1.8.3
2.4.3 2.3.0 2.0.7 1.8.2
2.4.2 * 2.2.2 2.0.6 1.8.1
2.4.1 2.2.1 2.0.5 1.8.0
* 2.4.0 2.2.0 2.0.4 1.7.9
2.3.9 2.1.9 2.0.3 1.7.8
2.3.8 2.1.8 2.0.2 1.7.7
* 2.3.7 2.1.7 2.0.1 1.7.6
2.3.6 2.1.6 2.0.0 1.7.5
2.3.5 2.1.5 1.8.9 1.7.4
2.3.4 2.1.4 1.8.8 1.7.3
* 2.3.3 2.1.3 1.8.7 1.7.2
2.3.2 2.1.2 1.8.6 1.7.11
2.3.11 2.1.1 1.8.5 1.7.10
2.3.10 2.1.0 1.8.4 1.7.1
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
kkuwana%
已经通过gvm安装的Groovy也应该没问题。
我会尝试在已安装的版本中切换。
命令是sdk use {产品名称} {版本}。
首先,我会尝试确认当前的Groovy版本。
kkuwana% groovy -v
zsh: command not found: groovy
kkuwana%
刚才出现的错误似乎是这个问题。根据上面的版本列表,可以看出默认使用的产品信息已经丢失了。
我将尝试指定版本来进行测试。
kkuwana% sdk use groovy 2.4.0
Using groovy version 2.4.0 in this shell.
kkuwana% groovy -v
Groovy Version: 2.4.0 JVM: 1.8.0_25 Vendor: Oracle Corporation OS: Linux
kkuwana%
kkuwana% groovy -v
Groovy Version: 2.3.7 JVM: 1.8.0_25 Vendor: Oracle Corporation OS: Linux
kkuwana%
你真棒。
我再看一次可用的Groovy列表。
kkuwana% sdk list groovy
================================================================================
Available Groovy Versions
================================================================================
2.4.4 2.3.1 2.0.8 1.8.3
2.4.3 2.3.0 2.0.7 1.8.2
2.4.2 * 2.2.2 2.0.6 1.8.1
2.4.1 2.2.1 2.0.5 1.8.0
> * 2.4.0 2.2.0 2.0.4 1.7.9
2.3.9 2.1.9 2.0.3 1.7.8
2.3.8 2.1.8 2.0.2 1.7.7
* 2.3.7 2.1.7 2.0.1 1.7.6
2.3.6 2.1.6 2.0.0 1.7.5
2.3.5 2.1.5 1.8.9 1.7.4
2.3.4 2.1.4 1.8.8 1.7.3
* 2.3.3 2.1.3 1.8.7 1.7.2
2.3.2 2.1.2 1.8.6 1.7.11
2.3.11 2.1.1 1.8.5 1.7.10
2.3.10 2.1.0 1.8.4 1.7.1
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
现在已经更新到2.4.0版本并且正在正确使用中。
我还将尝试进行安装。
kkuwana% sdk list groovy
================================================================================
Available Groovy Versions
================================================================================
2.4.4 2.3.1 2.0.8 1.8.3
2.4.3 2.3.0 2.0.7 1.8.2
2.4.2 * 2.2.2 2.0.6 1.8.1
2.4.1 2.2.1 2.0.5 1.8.0
> * 2.4.0 2.2.0 2.0.4 1.7.9
2.3.9 2.1.9 2.0.3 1.7.8
2.3.8 2.1.8 2.0.2 1.7.7
* 2.3.7 2.1.7 2.0.1 1.7.6
2.3.6 2.1.6 2.0.0 1.7.5
2.3.5 2.1.5 1.8.9 1.7.4
2.3.4 2.1.4 1.8.8 1.7.3
* 2.3.3 2.1.3 1.8.7 1.7.2
2.3.2 2.1.2 1.8.6 1.7.11
2.3.11 2.1.1 1.8.5 1.7.10
2.3.10 2.1.0 1.8.4 1.7.1
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
kkuwana% sdk install groovy 2.4.4
Downloading: groovy 2.4.4
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 30.9M 100 30.9M 0 0 983k 0 0:00:32 0:00:32 --:--:-- 1092
Installing: groovy 2.4.4
Done installing!
Do you want groovy 2.4.4 to be set as default? (Y/n): Y
Setting groovy 2.4.4 as default.
可以了。
現在讓我們來看一下Groovy的版本吧。
kkuwana% groovy -v
Groovy Version: 2.4.0 JVM: 1.8.0_25 Vendor: Oracle Corporation OS: Linux
kkuwana%
默认情况下,版本没有改变。
追记
我在Twitter上收到指摘。很可能这是因为在这个终端内已经使用了use命令指定版本的缘故。如果开启另一个终端,应该就可以了。
让我们再次查看清单吧。 ba.)
kkuwana% sdk list groovy
================================================================================
Available Groovy Versions
================================================================================
* 2.4.4 2.3.1 2.0.8 1.8.3
2.4.3 2.3.0 2.0.7 1.8.2
2.4.2 * 2.2.2 2.0.6 1.8.1
2.4.1 2.2.1 2.0.5 1.8.0
> * 2.4.0 2.2.0 2.0.4 1.7.9
2.3.9 2.1.9 2.0.3 1.7.8
2.3.8 2.1.8 2.0.2 1.7.7
* 2.3.7 2.1.7 2.0.1 1.7.6
2.3.6 2.1.6 2.0.0 1.7.5
2.3.5 2.1.5 1.8.9 1.7.4
2.3.4 2.1.4 1.8.8 1.7.3
* 2.3.3 2.1.3 1.8.7 1.7.2
2.3.2 2.1.2 1.8.6 1.7.11
2.3.11 2.1.1 1.8.5 1.7.10
2.3.10 2.1.0 1.8.4 1.7.1
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
kkuwana%
安装看起来没有问题。
那么我会再尝试手动切换版本。
kkuwana% sdk use groovy 2.4.4
Using groovy version 2.4.4 in this shell.
kkuwana% groovy -v
Groovy Version: 2.4.4 JVM: 1.8.0_25 Vendor: Oracle Corporation OS: Linux
kkuwana%
kkuwana%
kkuwana%
kkuwana% sdk use groovy 2.4.0
Using groovy version 2.4.0 in this shell.
kkuwana%
切换成功了。
由于刚刚发布不久(本应如此),所以我认为这方面也会不断地变得更加精细。