Exercice sur les Closures
Dans cette leçon, nous allons apprendre à utiliser les Closures et lire la documentation pour identifier quand une closure est utilis.e
Rappel sur les Closures
Groovy
En Groovy, une closure est une fonction anonyme pouvant être assignée à une variable ou passée comme argument à une autre fonction. Elle peut accéder aux variables de son contexte environnant, même après que ce contexte ait été fermé. Voici un exemple simple :
def closureExemple = { param ->
println("Paramètre de la closure : $param")
}
// Appel de la closure
closureExemple("Valeur")
Dans cet exemple, closureExemple est une closure prenant un paramètre et l'affichant.
Gradle
Gradle, basé sur Groovy, utilise également des closures de manière extensive dans ses scripts de construction. Les closures sont couramment utilisées pour définir des tâches, des configurations et d'autres éléments du script. Voici un exemple minimaliste :
task myTask {
doLast {
println "Exécution de ma tâche"
}
}
Ici, myTask est une tâche Gradle qui exécute le code défini dans la closure doLast lorsqu'elle est exécutée.
Les closures en Gradle permettent de déclarer des structures de build de manière concise et expressive, en tirant parti de la puissance de la syntaxe Groovy.
Présentation de l'exercice
Comprendre le concept de Closures en Groovy et son utilisation dans le contexte de Gradle.
Etapes
Objectif : Comprendre le concept de Closures en Groovy et son utilisation dans le contexte de Gradle.
Instructions :
- Créez un nouveau projet Gradle avec la structure de base.
- Définissez une tâche nommée "afficherMessage" dans le fichier de script Gradle (build.gradle).
- Dans cette tâche, utilisez une closure pour afficher un message de salutation personnalisé. La closure doit prendre un paramètre pour le nom et l'utiliser dans le message.
- Ajoutez une autre tâche nommée "calculerCarré" qui utilise une closure pour calculer le carré d'un nombre entier passé en paramètre et affiche le résultat.
- Exécutez les deux tâches en utilisant la ligne de commande Gradle.
Exemple de structure du projet
mon-projet/
|-- build.gradle
|-- src/
|-- main/
|-- java/
|-- resources/
Exemple de solution attendue :
// build.gradle
// Tâche pour afficher un message de salutation personnalisé
task afficherMessage {
doLast {
def nom = "Alice"
afficherSalutation(nom)
}
}
// Tâche pour calculer le carré d'un nombre
task calculerCarre {
doLast {
def nombre = 5
calculerEtAfficherCarre(nombre)
}
}
// Fonction utilisant une closure pour afficher un message de salutation
def afficherSalutation = { String nom ->
println("Bonjour, $nom ! Bienvenue dans le monde des Closures en Groovy avec Gradle.")
}
// Fonction utilisant une closure pour calculer et afficher le carré d'un nombre
def calculerEtAfficherCarre = { int nombre ->
def carre = nombre * nombre
println("Le carré de $nombre est $carre.")
}
Pour aller plus loin
Documentation Groovy: Cela inclut des sections sur les closures et d'autres concepts de programmation Groovy.
Gradle DSL Guide: Ce guide fournit une référence détaillée sur la DSL Gradle, où vous trouverez des informations sur l'utilisation de Closures dans différents contextes.