使用SDKMAN(前身为gvm)来安装Java和Groovy的SDK

我转世为gvm。

以前使用gvm工具来安装和管理Grails、Groovy等产品,但现在它已经变成了一个名为SDKMAN的产品。

SDKMAN(Github)- 开发工具管理器

在过去,我们在GVM中处理Groovy家族的产品。但是在SDKMAN中,我们可以跨越这个界限,轻松地安装和管理JVM家族的产品。

2016/12/14 追加
现在,SDKMAN 可以安装和管理 JDK(OracleJava)!
目前,有以下 25 个产品可以通过 SDKMAN 进行安装和管理。

Name最新バージョン(on SDKMAN)公式Activator1.3.10
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% 

切换成功了。
由于刚刚发布不久(本应如此),所以我认为这方面也会不断地变得更加精细。

广告
将在 10 秒后关闭
bannerAds