Maven / Gradle pour Java : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Qu'est-ce que Maven et Gradle et pourquoi en a-t-on besoin ?

\n\n

Dans le monde du développement Java, il existe un problème fondamental : comment gérer les dépendances (bibliothèques externes), automatiser la construction du projet, exécuter les tests et créer les artefacts finaux (JAR, WAR) ? Le téléchargement manuel des fichiers JAR et la configuration du classpath sont une voie sans issue, en particulier pour les projets comportant des dizaines de dépendances.

\n\n

Maven et Gradle sont les deux systèmes de construction automatique (build automation tools) les plus populaires pour Java. Ils résolvent les problèmes suivants :

\n
    \n
  • Gestion des dépendances : téléchargement automatique des bibliothèques depuis les dépôts centraux (Maven Central, Google Maven) et de leurs dépendances transitives.
  • \n
  • Standardisation du cycle de vie : compilation, test, empaquetage, déploiement – tout cela s'effectue avec des commandes standard.
  • \n
  • Reproductibilité des constructions : tout développeur peut construire le projet avec une seule commande, en ayant uniquement le code source et le fichier de configuration.
  • \n
  • Intégration avec CI/CD : Jenkins, GitLab CI, GitHub Actions exécutent facilement les constructions Maven/Gradle.
  • \n
\n\n

Maven utilise XML (fichier pom.xml) et un cycle de vie strict. Gradle utilise Groovy ou Kotlin DSL (fichier build.gradle ou build.gradle.kts), il est plus flexible et plus rapide grâce à la construction incrémentielle. Dans cet article, nous examinerons les deux outils, mais nous nous concentrerons sur Gradle en tant que solution plus moderne.

\n\n

Installation de Maven et Gradle

\n\n

Installation de Maven

\n

Maven ne s'installe pas via pip ou npm. Il doit être téléchargé depuis le site officiel ou installé via le gestionnaire de paquets du système d'exploitation.

\n
# macOS (Homebrew)\nbrew install maven\n\n# Ubuntu/Debian\nsudo apt-get update\nsudo apt-get install maven\n\n# Windows (Chocolatey)\nchoco install maven\n\n# Vérification de l'installation\nmvn --version
\n\n

Installation de Gradle

\n

Gradle s'installe également séparément. Il est recommandé d'utiliser SDKMAN! pour gérer les versions.

\n
# Installation de SDKMAN (si pas encore installé)\ncurl -s "https://get.sdkman.io" | bash\nsource "$HOME/.sdkman/bin/sdkman-init.sh"\n\n# Installation de la dernière version de Gradle\nsdk install gradle\n\n# Vérification\ngradle --version\n\n# Alternative : télécharger depuis https://gradle.org/releases/ et décompresser
\n\n

Démarrage rapide : Création d'un projet

\n\n

Création d'un projet avec Maven

\n

Maven peut générer une structure de projet via des archétypes (archetypes).

\n
# Création d'un projet Java simple\nmvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false\n\n# Aller dans le dossier du projet\ncd my-app\n\n# Construction du projet\nmvn clean package\n\n# Exécution (si la classe main est configurée)\njava -cp target/my-app-1.0-SNAPSHOT.jar com.example.App
\n\n

Création d'un projet avec Gradle

\n

Gradle utilise la commande init pour créer une structure.

\n
# Créer un dossier et initialiser le projet\nmkdir my-gradle-app\ncd my-gradle-app\ngradle init\n\n# Choisir : 2: application -> 3: Java -> 1: Groovy DSL -> 2: JUnit Jupiter -> Entrée\n\n# Construction et exécution\n./gradlew build\n./gradlew run
\n\n

Après cela, vous aurez une structure de projet avec les fichiers build.gradle (ou pom.xml pour Maven) et les dossiers src/main/java et src/test/java.

\n\n

Méthodes/Fonctions principales (Gradle DSL)

\n

Examinons les constructions clés de Gradle (Groovy DSL). Pour Maven, elles sont analogues, mais avec une syntaxe XML.

\n\n

1. dependencies { ... }

\n

Ce qu'elle fait : Définit les dépendances du projet – les bibliothèques externes qui seront téléchargées depuis les dépôts.

\n

Paramètres : À l'intérieur du bloc, on spécifie les configurations (implementation, testImplementation, compileOnly, etc.) et les coord

Recommendations