Marvin Pascale

[B.Log]

01 Luglio 2020

SDKMAN

SDKMAN

SDKMAN! è uno strumento per la gestione di versioni parallele di più kit di sviluppo software (SDK) sulla maggior parte dei sistemi basati su Unix. Fornisce una comoda Command Line Interface (CLI) e API per l’installazione, la gestione, la rimozione e l’elenco dei candidati.

I vantaggi

  • Scritto in bash richiede solo zip e unzip;
  • facilità nell’installazione e nella gestione di più SDK (variabili di ambiente comprese);
  • compatibile con Java, Groovy, Scala, Kotlin e Ceylon, Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot, Vert.x …;
  • offre una CLI e API;
  • multipiattaforma (Mac OSX, Linux, Cygwin, Solaris and FreeBSD).

L’installazione è davvero semplice:

$ curl -s "https://get.sdkman.io" | bash

Mettiamo le mani in pasta

In questo esempio lavoreremo con java e quindi JDK.

$ sdk list java
================================================================================
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 AdoptOpenJDK  |     | 14.0.1.j9    | adpt    |            | 14.0.1.j9-adpt
               |     | 14.0.1.hs    | adpt    |            | 14.0.1.hs-adpt
               |     | 13.0.2.j9    | adpt    |            | 13.0.2.j9-adpt
               |     | 13.0.2.hs    | adpt    |            | 13.0.2.hs-adpt

               |     | 12.0.2.j9    | adpt    |            | 12.0.2.j9-adpt
               |     | 12.0.2.hs    | adpt    |            | 12.0.2.hs-adpt
               |     | 11.0.7.j9    | adpt    |            | 11.0.7.j9-adpt
               | >>> | 11.0.7.hs    | adpt    | installed  | 11.0.7.hs-adpt
               |     | 8.0.252.j9   | adpt    |            | 8.0.252.j9-adpt
               |     | 8.0.252.hs   | adpt    |            | 8.0.252.hs-adpt
 Amazon        |     | 11.0.7       | amzn    |            | 11.0.7-amzn
               |     | 8.0.252      | amzn    | installed  | 8.0.252-amzn
 Azul Zulu     |     | 14.0.1       | zulu    |            | 14.0.1-zulu
 ...

Se volessimo installare una versione specifica (11.0.7.hs-adpt) basterà lanciare:

$ sdk install java 11.0.7.hs-adpt

per poi selezionarla:

$ sdk use java 11.0.7.hs-adpt

Using java version 11.0.7.hs-adpt in this shell.

verifichiamo:

$java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.7+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.7+10, mixed mode)

Se poi volessimo cambiare JDK non ci resterebbe che lanciare:

$ sdk use java 8.0.252-amzn

Using java version 8.0.252-amzn in this shell.

verifichiamo:

$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment Corretto-8.252.09.1 (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM Corretto-8.252.09.1 (build 25.252-b09, mixed mode)

SDKMAN si preoccuperà di rendere disponibili gli eseguibili e le variabili di ambiente.

$ echo $JAVA_HOME
/home/mpascale/.sdkman/candidates/java/8.0.252-amzn

Se utilizzi molto java non ti resta che approfondire e diventare un vero ninja.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: