Chapitre Présentation du langage Groovy
Exercice sur les structures de données et Gradle
Dans cette leçon, nous allons apprendre à utiliser les Closures et lire la documentation pour identifier quand une closure est utilis.e
Dernière modification : Dec 08 , 2024
Dernière modification : Dec 08 , 2024
Rappel sur les Closures
Objectif : Renforcer la compréhension des structures de données en Groovy et leur utilisation dans le contexte de scripts Gradle.
Instructions
-
Liste de Noms :
- Créez une liste de noms de personnes dans votre script Gradle.
- Utilisez une boucle pour afficher chaque nom sur une ligne distincte.
-
Map de Projets :
- Créez une map représentant différents projets, où les clés sont les noms des projets et les valeurs sont les descriptions correspondantes.
- Parcourez la map pour afficher le nom et la description de chaque projet.
-
Filtrage de Noms : Utilisez une closure pour filtrer les noms de la liste créée précédemment. Par exemple, ne sélectionnez que les noms qui commencent par la lettre "A". Affichez les noms filtrés.
-
Ajout de Tâches Dynamiquement : Créez une liste de tâches Gradle à l'aide d'une boucle. Chaque tâche doit effectuer une action simple, comme afficher un message. Affichez la liste des tâches créées.
Exemple de structure du projet
mon-projet/
|-- build.gradle
|-- src/
|-- main/
|-- java/
|-- resources/
Exemple de solution attendue
// build.gradle
// Liste de noms
def listeNoms = ["Alice", "Bob", "Charlie", "Dave"]
// Affichage des noms
println("Liste de noms :")
listeNoms.each { nom ->
println("- $nom")
}
// Map de projets
def projets = [
"ProjetA": "Description du projet A",
"ProjetB": "Description du projet B",
"ProjetC": "Description du projet C"
]
// Affichage des projets
println("\nListe de projets :")
projets.each { nom, description ->
println("- $nom : $description")
}
// Filtrage des noms commençant par "A"
def nomsFiltres = listeNoms.findAll { nom -> nom.startsWith("A") }
println("\nNoms commençant par 'A' : $nomsFiltres")
// Ajout de tâches dynamiquement
def taches = ["Tache1", "Tache2", "Tache3"]
// Création de tâches Gradle
taches.each { tache ->
task "$tache" {
doLast {
println("Exécution de la tâche : $tache")
}
}
}
// Affichage des tâches créées
println("\nListe des tâches créées :")
tasks.each { tache ->
println("- ${tache.name}")
}