Chapitre Introduction à Gradle
Gradle, les concepts et principales fonctionnalités
Cette leçon présente :
- la comparaison avec Maven
- la migration Maven vers Gradle
- le fonctionnement de Gradle
Fonctionnement de Gradle
Comparaison avec Maven
Gradle | Maven |
---|---|
build.gradle, gradle.properties | pom.xml |
Plus lent sur le premier appel, plus rapide ensuite | Globalement plus lent. |
Supports projets multi-langages | Principalement pour les projets Java |
Solution officielle pour Android | Plugins plus stables et riches |
Meilleure résolution des conflits de dépendances | Exclusion et surcharge limitée pour résoudre les conflits |
Réutilisation et écriture concise des scripts | Ecriture verbeuse dans les POM ( répétition des versions etc) |
Utilisation des commandes “bash” , “unix” laborieuse par rapport à un Makefile | Pas d’appel possible des commandes bash, Unix. |

Gradle Wrapper
Le Gradle Wrapper
Le Wrapper est un script qui permet d'invoquer une version déclarée de
Gradle, le télécharger automatiquement avant le lancement si nécessaire.
Gradle wrapper en quelques mots
- Vous définissez la version de Gradle dans
gradle-wrapper.properties
- Vous installez le wrapper en utilisant
gradle wrapper
- Vous utilisez
gradlew
ougradlew.bat
pour appeler Gradle dans la
version attendue
Fonctionnement de Gradle
5 fonctionnalités importantes
- Gradle est un outil de build générique
- Le modèle de Gradle est basé sur des tâches
- Le script est chargé, initialisé et exécuté dans un ordre précis
- Gradle est extensible
- Gradle repose sur une API
Gradle vous permet de construire de nombreux types de logiciels.
Il est possible d'utiliser des plugins pour simplifier toutefois la
production d'applications.
Ainsi Gradle supporte assez bien les applications Java, C/C++, Swift,
Scala, Groovy, Kotlin.
Par extension, il est assez facile d'intégrer NPM.
Les concepts de Gradle
Les projets
- Un projet représente en Gradle, un logiciel, une bibliothèque, quelque chose que vous souhaitez construire.
- Un projet définit des tâches afin de d'exécuter différents opérations
Les artifacts
- Un projet consiste à créer un ou plusieurs artefacts.
- Un artefact peut être une javadoc, une archive JAR, un ZIP, une image Docker...
- Certaines tâches construisent les artefacts du projet
Les tâches
- Les tâches sont exécutées lors du build
- Chaque projet contient ses tâches
- Une tâche est un une activité à faire qui peut produire quelque chose.
- Une tâche peut consister à compiler quelque chose, créer un JAR, appeler Javadoc etc
Le script de build
(buildscript)
- Le script de build correspond au fichier build.gradle ou build.gradle.kt
- Localisé à la racine du projet
- Le script de build définit le ou les projets et les tâches disponibles pour chaque projet
Les builds Gradle reposent sur un graphe dirigé (DAG). Chaque noeud est
une unité de travail appelée tâche.
Les dépendances entre les tâches sont modélisées par les flèches entre les
noeuds du graphe


Les tâches
Les tâches
Une tâche peut contenir :
- une action : une activité comme copier un fichier; compiler un fichier
source... - des entrées : ce sont les objets produits par d'autres tâches ou des
éléments de configuration nécessaires à l'exécution - des sorties : les élements produits par l'exécution de l'action
- un état : la tâche possède plusieurs états : uninitialized, initialized;
configured, ready, up-to-date, dirty
Un script Gradle contient :
- un ensemble de tâches formant un graphe
- l'organisation des builds en projets et sous-projets
- la configuration du build et les propriétés
Les phases de Build
L'exécution d'un build Gradle repose sur trois phases :
- Initialisation
- Configuration
- Execution
L'API Gradle
Comment étendre les fonctions de Gradle ?
Il existe quatre possibilités pour étendre Gradle et gérer les besoins
spécifiques de votre build :
- Créer des nouveaux types de tâches
- Déclarer de nouvelles properties
- Créer et utiliser de nouvelles conventions
- Créer un modèle personnalisé exemple sourceSets
- Utiliser les possibilités de Kotlin ou Groovy
La construction des Scripts de build Gradle repose sur un langage de
programmation (Kotlin, Gradle).
Ces langages sont compilés en utilisant une API, l'API Gradle.
Ainsi les scripts utilisent et appellent les objets et les méthodes de
l'API Gradle pour construire les tâches et aux éléments du build.
l'API Gradle est consultable via le DSL Groovy ou la Javadoc de Gradle.
Build scan

Qu'est ce que Buildscan ?
Un build scan est un enregistrement de l'exécution d'un build. Il permet
de comprendre ce qui s'est passé et pourquoi.
C'est une fonction de Gradle Entreprise; elle peut devenir potentiellement payante.
Qu'est ce que Buildscan ?
- Le buildscan peut être utilisé pour Maven et Gradle
- L'information est accesible uniquement par un lien affiché dans la
console - Les données sont supprimées après trois mois si non utilisées
- les données visualisées ne sont jamais supprimées sauf si vous les
supprimez-vous-même.
