1. Introduction

Public cible : Développeurs souhaitant se lancer dans la création de plugins Gradle.

Pour développer des plugins Gradle efficacement, un environnement de développement bien configuré est indispensable. Un bon setup vous fera gagner du temps, réduira les frustrations et assurera la cohérence de vos builds.

Ce guide se concentre sur quatre piliers essentiels :
  1. Le JDK (Java Development Kit), car Gradle et JBake s’exécutent sur la JVM.

  2. Un IDE moderne (IntelliJ IDEA) avec un bon support de Kotlin et Gradle.

  3. Gradle lui-même, pour initialiser les projets.

  4. JBake, le moteur de notre site statique.

gradle env
Figure 1. Composants de l’environnement de développement

2. 1. Le JDK : Le moteur de Gradle

Gradle est une application qui s’exécute sur la Java Virtual Machine (JVM). Par conséquent, l’installation d’un JDK est un prérequis absolu.

2.1. Quelle version choisir ?

Il est recommandé d’utiliser une version LTS (Long-Term Support) de Java. À l’heure actuelle, JDK 17 ou JDK 21 sont d’excellents choix.

2.2. Installation via SDKMAN! (Recommandé)

SDKMAN! est un outil formidable pour gérer les versions de nombreux SDK, y compris Java et Gradle.

2.2.1. Installer SDKMAN!

curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh"

2.2.2. Installer une version du JDK

# Pour lister les versions de Java disponibles sdk list java

# Pour installer Java 17 (par exemple, la distribution Temurin)
sdk install java 17.0.8-tem

2.2.3. Vérifier l’installation

java -version

Vous devriez voir la version que vous venez d’installer s’afficher.

3. 2. L’IDE : IntelliJ IDEA

Pour le développement de plugins Gradle avec le DSL Kotlin, IntelliJ IDEA est l’outil de choix. Son intégration avec Gradle et Kotlin est inégalée.

  • Community Edition : Gratuite et largement suffisante pour commencer.

  • Ultimate Edition : Payante, elle offre des fonctionnalités avancées pour le développement web et base de données.

Téléchargez la version qui vous convient depuis le site de JetBrains : https://www.jetbrains.com/idea/download/

L’IDE détectera automatiquement vos fichiers build.gradle.kts et settings.gradle.kts, vous offrant une autocomplétion puissante, la navigation dans le code et des outils de débogage intégrés.

4. 3. Gradle : L’outil de build

Même si chaque projet utilisera sa propre version de Gradle via le Gradle Wrapper, il est utile d’avoir une installation globale de Gradle pour des tâches comme l’initialisation de nouveaux projets (gradle init).

4.1. Installation via SDKMAN!

Tout comme pour le JDK, SDKMAN! simplifie l’installation de Gradle.

4.1.1. Installer Gradle

sdk install gradle

4.1.2. Vérifier l’installation

gradle -v

Cette commande affichera les versions de Gradle, Kotlin, Groovy et du JDK utilisées.

5. 4. JBake : Le générateur de site statique

JBake est l’outil que nous utiliserons pour transformer nos fichiers sources (comme celui-ci) en un site web statique. Avoir une installation locale est pratique pour prévisualiser les changements.

5.1. Installation via SDKMAN!

Comme pour les autres outils, SDKMAN! est la méthode la plus simple.

5.1.1. Installer JBake

sdk install jbake

5.1.2. Vérifier l’installation

jbake -v

Cette commande affichera la version de JBake et les informations de l’environnement Java qu’il utilise.

6. 5. Le Gradle Wrapper : La bonne pratique absolue

Une fois votre projet créé (ce que nous verrons dans l’article suivant), vous ne devriez plus utiliser la commande globale gradle. À la place, vous utiliserez le Gradle Wrapper (./gradlew), un script inclus dans votre projet.

Pourquoi ? * Reproductibilité : Le Wrapper garantit que chaque personne travaillant sur le projet (y compris votre serveur de CI/CD) utilise exactement la même version de Gradle, éliminant ainsi les erreurs de build dues à des environnements différents. * Simplicité : Pas besoin d’installer Gradle manuellement pour contribuer à un projet. Il suffit de cloner le dépôt et de lancer ./gradlew.

Une commande typique ressemblera à ceci :

# Ne pas faire : gradle build
# À faire :
./gradlew build

7. 6. Docker et Portainer : Pour des Builds Reproductibles (Optionnel)

Bien que non strictement nécessaires pour écrire un plugin, Docker et Portainer sont des outils DevOps modernes qui facilitent grandement la création de builds reproductibles et la gestion de votre environnement.

7.1. Installation de Docker Engine

Docker vous permet d’empaqueter votre application et ses dépendances dans un conteneur.

7.1.1. Installer Docker via le script officiel :

curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh

7.1.2. Gérer Docker sans sudo (recommandé) :

Ajoutez votre utilisateur au groupe docker.

sudo usod -aG docker $USER

Vous devez vous déconnecter et vous reconnecter pour que ce changement soit pris en compte.

7.1.3. 3. Vérifier l’installation :

docker run hello-world

7.2. Gérer Docker avec Portainer (GUI)

Portainer est une interface web légère pour gérer vos conteneurs Docker.

7.2.1. Créer un volume pour les données de Portainer :

docker volume create portainer_data

7.2.2. Lancer le conteneur Portainer :

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Vous pouvez maintenant accéder à l’interface de Portainer sur https://localhost:9443.

8. Conclusion

Votre environnement est maintenant prêt ! Vous disposez d’un JDK, de l’IDE le plus adapté, de Gradle et de JBake. Avec l’ajout de Docker, vous êtes également paré pour créer des builds conteneurisés et reproductibles. Cette base solide vous permettra de vous concentrer sur l’essentiel : le développement de plugins puissants et utiles.

Dans le prochain article, nous utiliserons la commande gradle init pour générer la structure de notre premier projet de plugin.