> ## Content Index
> Fetch the complete content index at: https://www.sfeir.dev/llms.txt
> Use this file to discover other available public pages before exploring further.

# SDKMan: l'indispensable pour tout développeur Java
- URL: https://www.sfeir.dev/back/sdkman-lindispensable-chez-le-developpeur-java-2/
- Published: 2024-09-23T10:16:00.000Z
- Updated: 2024-09-23T13:24:51.000Z
- Description: SDKMAN ! s'impose comme l'outil incontournable pour tout développeur Java. Facilitant la gestion et le basculement entre différentes versions de Java et autres SDKs, il optimise l'efficacité et la flexibilité des projets.
- Author: Fabrice Yopa
- Tags: Back, Tools, Maven

Dans l'univers en constante évolution du développement logiciel, les technologies et les versions des outils changent rapidement. Pour les [développeurs Java](https://www.sfeir.dev/back/le-langage-java-definition/), jongler entre différentes versions de la JDK (Java Development Kit) peut être un véritable casse-tête, notamment lorsqu'il s'agit de maintenir divers projets nécessitant des versions spécifiques.

C’est ici que SDKMAN ! entre en jeu. Cet outil révolutionnaire permet non seulement de gérer facilement plusieurs versions de Java, mais aussi de passer [d'une version](https://www.sfeir.dev/back/java-23-insight-les-pattern-primitifs/) à [une autre](https://www.sfeir.dev/back/quelles-nouveautes-arrivent-dans-java-22/) en toute simplicité.

Cet article vous guidera à travers l'installation, l'utilisation et les fonctionnalités avancées de SDKMAN!

### 1 - Installation de SDKMAN! sur macOS et Linux

L'installation de SDKMAN ! sur macOS et Linux est un processus simple et rapide, accessible même aux débutants. Voici les étapes à suivre pour configurer cet outil sur votre machine.

  - **Prérequis :** Avant d'installer SDKMAN !, assurez-vous que votre système dispose des éléments suivants :
    - Un terminal (préinstallé sur macOS et Linux).
    - Un accès à Internet pour télécharger les scripts et les packages nécessaires.
    - **curl** et **zip** installés sur votre système. Ces outils sont généralement préinstallés, mais vous pouvez les installer manuellement si nécessaire.

Pour vérifier la présence de **curl** et **zip**, exécutez les commandes suivantes dans votre terminal :

```bash
curl --version

```

```bash
zip --version

```

Si ces commandes ne retournent pas les versions de ces outils, vous pouvez les installer via votre gestionnaire de paquets (Homebrew pour macOS ou apt/yum pour Linux).

  - **Installation de SDKMAN !** Une fois les prérequis en place, l'installation de SDKMAN ! se fait en une seule commande :

```bash
curl -s "<https://get.sdkman.io>" | bash

```

Cette commande télécharge et exécute le script d'installation de SDKMAN!. Pendant le processus, le script va :

- Télécharger les fichiers nécessaires.
- Ajouter des configurations à votre fichier shell (`.bashrc`, `.bash_profile`, `.zshrc` ou autre selon votre shell).
- Initialiser SDKMAN ! automatiquement.

**Finalisation de l'installation :**  
Après l'exécution du script d'installation, rechargez votre configuration shell pour que les modifications prennent effet. Cela peut être fait en exécutant la commande suivante :

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

```

Alternativement, vous pouvez fermer et rouvrir votre terminal.

### 2 - Configuration Initiale de SDKMAN!

Après avoir installé SDKMAN!, il est important de configurer correctement l'outil pour en tirer le meilleur parti. Cette étape vous permettra de personnaliser le comportement de SDKMAN! en fonction de vos besoins spécifiques.

  - **Vérification de l'installation**

Avant de passer à la configuration, commencez par vérifier que SDKMAN! est installé correctement. Ouvrez un terminal et exécutez la commande suivante :

```bash
sdk version

```

Si SDKMAN! est installé correctement, cette commande retournera la version en cours d'utilisation.

![](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2024/09/CleanShot-2024-08-23-at-12.39.13@2x.png)

  - **Personnalisation du fichier de configuration**

Le fichier de configuration de SDKMAN! se trouve dans votre répertoire utilisateur à l'emplacement suivant : `~/.sdkman/etc/config`. Ce fichier contient plusieurs paramètres que vous pouvez ajuster.

Voici quelques-unes des options les plus couramment modifiées :

`**sdkman_insecure_ssl**` : Si vous avez des problèmes de certificat SSL, vous pouvez désactiver la vérification SSL en définissant cette option sur `true`. Cependant, cela est déconseillé pour des raisons de sécurité.

```bash
sdkman_insecure_ssl=false

```

`**sdkman_auto_selfupdate**` : Permet à SDKMAN! de se mettre automatiquement à jour lorsqu'une nouvelle version est disponible. Les valeurs possibles sont `true` ou `false`. Exemple :

```bash
sdkman_auto_selfupdate=true

```

`**sdkman_auto_answer**` : Détermine si SDKMAN! doit automatiquement répondre "oui" aux questions posées lors des installations et mises à jour. Les valeurs possibles sont `true` (réponse automatique) ou `false` (réponse manuelle). Exemple :

```bash
sdkman_auto_answer=true

```

Il y a beaucoup d’autres configurations, que vous pourrez regarder sur le site de SDKMan.

  - **Mise à jour du shell**

Pour que les modifications apportées au fichier de configuration soient prises en compte, vous devez recharger votre shell ou redémarrer votre terminal. Si vous avez modifié les fichiers `.bashrc`, `.zshrc`, ou autres, exécutez la commande suivante dans votre terminal :

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

```

### 3 - Gestion des versions de Java avec SDKMAN!

L'un des principaux avantages de SDKMAN ! est sa capacité à gérer facilement plusieurs versions de Java sur une même machine, que vous travailliez sur différents projets nécessitant des versions spécifiques de la JDK ou que vous souhaitiez tester vos applications sur plusieurs versions de Java. Voici comment installer plusieurs versions de Java, basculer entre elles, et définir une version par défaut.

  - **Installation de plusieurs versions de Java**

SDKMAN! vous permet d'installer plusieurs versions de Java rapidement en utilisant la commande `sdk install`. Pour installer une version spécifique de Java, suivez ces étapes :

  - **Lister les versions disponibles :** Commencez par lister toutes les versions de Java disponibles via SDKMAN! avec la commande suivante :

```bash
sdk list java

```

Cette commande affichera une liste de toutes les versions de Java disponibles, classées par fournisseur et numéro de version.

- **Installer une version spécifique :** Une fois que vous avez identifié la version que vous souhaitez installer, utilisez la commande suivante pour l'installer :

```bash
sdk install java <identifier>

```

Par exemple, pour installer la **version 22.0.2** de Corretto, vous utiliseriez :

```bash
sdk install java  22.0.2-amzn

```

Vous pouvez répéter cette étape pour installer autant de versions de Java que nécessaire.

  - **Définir une version de Java par défaut**

Pour changer la version de Java active, utilisez la commande `sdk use` suivie de la version souhaitée. Par exemple, pour utiliser la version 11.0.11 :

```bash
sdk use java 11.0.11.hs-adpt

```

Cette commande change la version de Java pour la session en cours du terminal. La version sera active tant que vous ne fermerez pas la session ou ne changerez pas à nouveau de version.

  - **Lister les versions installées :** Avant de changer de version, vous pouvez vérifier les versions de Java installées sur votre système en utilisant la commande suivante :

```bash
sdk list java

```

Les versions installées seront marquées avec un `*` or `local only` à côté de leur numéro de version.

![](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2024/09/CleanShot-2024-08-23-at-12.57.14@2x.png)

Si vous avez une version de Java que vous utilisez plus fréquemment, vous pouvez la définir comme version par défaut. Ainsi, elle sera automatiquement activée à chaque ouverture de terminal.

- **Vérification de la version par défaut :** Pour vérifier que la version par défaut est correctement configurée, exécutez simplement la commande suivante :

```bash
java -version

```

- **Définir la version par défaut :** Pour définir une version de Java comme version par défaut, utilisez la commande `sdk default` suivie de la version souhaitée. Par exemple, pour définir la version 11.0.11 comme version par défaut, exécutez :

```bash
sdk default java 11.0.11.hs-adpt

```

### 4 - Fonctions avancées : installation d'autres SDKs et outils avec SDKMAN!

SDKMAN! ne se limite pas à la gestion des versions de Java ; il est également conçu pour gérer un large éventail de SDKs et d'outils de développement, tels que Maven, Gradle, Scala, et bien d'autres.

  - **Installation d'autres SDKs et outils de développement**

**Lister les SDKs disponibles :** Pour découvrir les autres SDKs et outils que vous pouvez installer, utilisez la commande suivante :

```bash
sdk list

```

Cette commande affichera une liste de tous les SDKs disponibles, incluant Maven, Gradle, Kotlin, Scala, etc.

![](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2024/09/CleanShot-2024-08-23-at-13.04.24@2x.png)

- **Installer d'autres SDKs :** Pour installer d'autres outils comme Scala ou Kotlin, il suffit d'utiliser la commande `sdk install` suivie du nom de l'outil. Par exemple, pour installer Scala :

```bash
sdk install scala

```

- **Installer Maven :** on ne présente plus Maven dans [l'écosysteme Java](https://www.sfeir.dev/success-story/james-gosling-pere-du-langage-java/) car tout développeur Java qui se respecte à déjà au moins une fois utilisé Maven dans sa vie.

```bash
sdk install maven

```

Chaque installation suit le même schéma, et SDKMAN! télécharge automatiquement la dernière version stable de l'outil demandé. Si vous avez besoin d'une version spécifique, vous pouvez spécifier la version souhaitée, par exemple :

```bash
sdk install gradle 6.8.

```

- **Configuration spécifique à chaque environnement**

SDKMAN! permet de créer des configurations spécifiques à chaque projet ou environnement de développement, grâce à des fichiers de configuration locaux. Ces configurations sont particulièrement utiles si vous travaillez sur plusieurs projets nécessitant différentes versions de Java, Maven, ou d'autres outils.

  - Dans le répertoire de votre projet, créez un fichier nommé `.sdkmanrc`. Ce fichier contiendra les versions spécifiques des outils que vous souhaitez utiliser pour ce projet. Par exemple :

```bash
java=11.0.11.hs-adpt
maven=3.6.3
gradle=6.8.3

```

Ce fichier assure que, chaque fois que vous travaillez dans ce répertoire, SDKMAN! utilisera les versions spécifiées.

Pour activer la configuration définie dans le fichier `.sdkmanrc`, exécutez la commande suivante dans le répertoire du projet :

```bash
sdk env install

```

Si vous passez fréquemment d'un projet à un autre, vous pouvez simplement changer de répertoire et exécuter à nouveau `sdk env install` dans chaque projet pour activer les versions d'outils spécifiques.

Vous pouvez également activer automatiquement la configuration environnementale chaque fois que vous entrez dans un répertoire contenant un fichier `.sdkmanrc`. Pour ce faire, ajoutez cette ligne à votre fichier de configuration shell (par exemple, `.bashrc` ou `.zshrc`) :

```bash
sdk env auto=true

```

Avec cette configuration, SDKMAN! activera automatiquement l'environnement correct lorsque vous naviguerez dans votre projet.

Pour conclure, SDKMAN ! est l'outil idéal pour les développeurs souhaitant gérer efficacement plusieurs versions de Java et autres SDKs.  

Peace et à une prochaine !