Guida a SDKMAN!

1. Panoramica

Con il nuovo ciclo di rilascio di Java, gli sviluppatori potrebbero dover gestire versioni parallele e build diverse di kit di sviluppo software (SDK) nel loro ambiente. Quindi impostare la variabile PATH a volte può diventare un vero problema.

In questo tutorial vedremo come SDKMAN! può aiutare a gestire facilmente l'installazione e la selezione degli SDK.

2. Cos'è SDKMAN !?

SDKMAN! è uno strumento per gestire versioni parallele di più SDK, che SDKMAN! chiamare "candidati" .

Fornisce una comoda interfaccia della riga di comando (CLI) e API per elencare, installare, cambiare e rimuovere i candidati. Inoltre, si occupa di impostare le variabili d'ambiente per noi.

Consente inoltre agli sviluppatori di installare SDK basati su JVM come Java, Groovy, Scala, Kotlin e Ceylon. Sono supportati anche Maven, Gradle, SBT, Spring Boot, Vert.x e molti altri. SDKMAN! è un'utilità open source gratuita, leggera e scritta in Bash.

3. Installa SDKMAN!

SDKMAN! è supportato da tutti i principali sistemi operativi e può essere facilmente installato su tutti i sistemi basati su Unix. Inoltre, supporta le shell Bash e Zsh.

Quindi iniziamo installandolo utilizzando il terminale:

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

Quindi, segui le istruzioni sullo schermo per completare l'installazione.

Potremmo aver bisogno dei pacchetti zip e unzip installati per completare il processo di installazione.

Quindi, apri un nuovo terminale o esegui:

$ source "$HOME/.sdkman/bin/sdkman-init.sh"

Infine, esegui il seguente comando per assicurarti che l'installazione abbia funzionato. Se tutto è andato bene, dovrebbe essere visualizzata la versione:

$ sdk version SDKMAN 5.8.5+522 

Per ulteriori personalizzazioni, fare riferimento alla guida all'installazione su SDKMAN! sito web.

Per vedere tutti i comandi disponibili, usa il comando di aiuto :

$ sdk help

4. Elenca tutti i candidati SDK

Quindi, iniziamo elencando tutti i candidati SDK disponibili.

$ sdk list 

Il comando list mostra tutti i candidati disponibili, identificati da un nome univoco, la descrizione, il sito web ufficiale e il comando di installazione:

===================================================== Available Candidates ===================================================== q-quit /-search down j-down ?-search up k-up h-help ----------------------------------------------------- Java (11.0.7.hs-adpt) //zulu.org ... $ sdk install java ----------------------------------------------------- Maven (3.6.3) //maven.apache.org ... $ sdk install maven ----------------------------------------------------- Spring Boot (2.3.1.RELEASE) //spring.io ... $ sdk install springboot ------------------------------------------------------ ... 

Pertanto, possiamo utilizzare questo identificatore per installare la versione predefinita di un candidato come Spring Boot (2.3.1.RELEASE) o Maven (3.6.3). Le versioni specificate in questo elenco rappresentano le versioni stabili o LTS di ogni SDK.

5. Installa e gestisci le versioni di Java

5.1. Versioni dell'elenco

Per elencare le versioni disponibili di Java, utilizzare il comando list . Il risultato è una tabella di voci raggruppate per fornitore e ordinate per versione:

$ sdk list java =================================================================== Available Java Versions =================================================================== Vendor | Use | Version | Dist | Status | Identifier ------------------------------------------------------------------- AdoptOpenJDK | | 14.0.1 | adpt | | 14.0.1.j9-adpt ... Amazon | | 11.0.8 | amzn | | 11.0.8-amzn ... Azul Zulu | | 14.0.2 | zulu | | 14.0.2-zulu ... BellSoft | | 14.0.2 | librca | | 14.0.2.fx-librca ... GraalVM | | 20.1.0 | grl | | 20.1.0.r11-grl ... Java.net | | 16.ea | open | | 16.ea.6-open ... SAP | | 14.0.2 | sapmchn | | 14.0.2-sapmchn ... 

Avremo bisogno di questo comando ogni volta che vogliamo controllare, cambiare o gestire l'archiviazione dei candidati.

5.2. Installa una versione Java

Diciamo che vogliamo installare l'ultima build di Java 14 da Azul Zulu. Pertanto, copiamo il suo identificatore, che è la versione dalla tabella, e lo aggiungiamo come argomento nel comando di installazione :

$ sdk install java 14.0.2-zulu Downloading: java 14.0.2-zulu In progress... ########### 100.0% Repackaging Java 14.0.2-zulu... Done repackaging... Installing: java 14.0.2-zulu Done installing! Setting java 14.0.2-zulu as default. 

SDKMAN! scaricherà e decomprimerà questa versione in una directory sul nostro computer.

Inoltre, aggiornerà le variabili di ambiente in modo da poter utilizzare immediatamente Java nel terminale.

Possiamo verificare lo stato e l'utilizzo di qualsiasi versione utilizzando il comando list . Di conseguenza, la versione 14.0.1 è ora installata e in uso:

$ sdk list java ================================================================= Available Java Versions ================================================================= Vendor | Use | Version | Dist | Status | Identifier ----------------------------------------------------------------- ... Azul Zulu | >>> | 14.0.1 | adpt | installed | 14.0.1.j9-adpt ... 

Inoltre, è possibile installare Java o qualsiasi versione personalizzata da un computer con lo stesso comando ma specificando il percorso dei binari come argomento aggiuntivo:

$ sdk install java custom-8 ~/Downloads/my-company-jdk-custom-8 

5.3. Passaggio da una versione all'altra

Possiamo controllare il passaggio tra le versioni in due forme, temporaneamente:

$ sdk use java 14.0.1.j9-adpt

o permanentemente:

$ sdk default java 14.0.1.j9-adpt 

5.4. Rimuovi una versione

Per rimuovere una versione installata, eseguire il comando di disinstallazione con la versione di destinazione:

$ sdk uninstall java 14.0.1.j9-adpt 

5.5. Visualizza le versioni in uso

Per verificare la versione corrente di Java, eseguiamo il comando corrente :

$ sdk current java Using java version 14.0.2-zulu 

Allo stesso modo, l'ultimo comando ha lo stesso effetto di:

$ java -version 

Per mostrare la versione tramite SDK sulla nostra macchina, possiamo eseguire il comando corrente senza argomenti:

$ sdk current Using: java: 14.0.2-zulu gradle: 6.2.2 

6. Utilizzo di SDKMAN! con un IDE

Gli SDK installati vengono archiviati in SDKMAN! directory il cui valore predefinito è ~ / .sdkman / candidate .

Ad esempio, le diverse versioni di Java saranno disponibili anche nella directory ~ / .sdkman / candidate / java / e le sottodirectory prendono il nome dalle versioni:

$ ls -al ~/.sdkman/candidates/java/ total 0 drwxrwxrwx 1 user user 12 Jul 25 20:00 . drwxrwxrwx 1 user user 12 Jul 25 20:00 .. drwxrwxr-x 1 user user 12 Jul 25 20:00 14.0.2-zulu lrwxrwxrwx 1 user user 14 Jul 25 20:00 current -> 14.0.2-zulu 

Pertanto, anche la versione attualmente selezionata di Java sarà disponibile come corrente in quella directory.

Allo stesso modo, Gradle o qualsiasi altro SDK verrà installato nella directory dei candidati .

In this way, we can use any particular version of Java, for example in our favorite IDE. All we have to do is to copy the path of a specific version and set it in the configuration of our IDE.

6.1. IntelliJ IDEA

In IntelliJ IDEA, open “Project Structure”, then open “Project Settings”. In the project configuration, we can add a new Java version by selecting “New…” from the “Project SDK” section:

We can also define the version of Java, Gradle, or Maven to use in the “Build Tools” section:

Tip: The version of Java must be the same as used in “Project SDK” for Gradle or Maven.

6.2. Eclipse

In Eclipse open “Project Properties”, select “Java Build Path”, and then switch to the “Libraries” tab. Here, we can manage the new SDK of Java via “Add Library…” and by following the instructions:

Possiamo anche controllare gli SDK installati per tutti i progetti. Apri "Preferenze" dal menu "Finestra", quindi vai a "JRE installati". Qui possiamo gestire l'SDK di Java tramite "Aggiungi ..." e seguendo le istruzioni:

7. Conclusione

In questo tutorial, abbiamo mostrato come SDKMAN! può aiutarci a gestire diverse versioni di Java SDK tra gli altri strumenti Java Environment come Maven.