Chapitre Premiers pas avec Gradle
Création d'un plugin simple pour Gradle
Développer un plugin Gradle qui génère un fichier de configuration personnalisé pour une application Java.
Introduction
Développer un plugin Gradle qui génère un fichier de configuration personnalisé pour une application Java.
Etapes de l'exercice
Initialisation du projet
- Créez un nouveau projet Gradle.
- Configurez le fichier build.gradle pour utiliser la version de Gradle appropriée et appliquer le plugin Java.
// build.gradle
plugins {
id 'java'
}
repositories {
jcenter()
}
dependencies {
implementation 'org.codehaus.groovy:groovy-all:2.5.14'
}
Développement du Plugin :
- Créez un répertoire src/main/groovy dans le répertoire du projet.
- À l'intérieur, créez un fichier ConfigGeneratorPlugin.groovy qui implémente l'interface
Plugin<Project>
. - Le plugin doit ajouter une tâche nommée
generateConfig
au projet.
// src/main/groovy/ConfigGeneratorPlugin.groovy
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.TaskAction
class ConfigGeneratorPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.task('generateConfig', type: ConfigGeneratorTask)
}
}
Tâche de Génération de Configuration :
La tâche generateConfig doit créer un fichier de configuration, par exemple, config.properties dans le répertoire build.
Le contenu du fichier de configuration doit être personnalisable et configurable via des propriétés du projet Gradle.
Exemple de contenu du fichier config.properties :
# Configuration generated by the Config Generator Plugin
app.name=MyApp
app.version=1.0
// src/main/groovy/ConfigGeneratorTask.groovy
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
class ConfigGeneratorTask extends DefaultTask {
@Input
String appName = project.hasProperty('appName') ? project.appName : 'DefaultAppName'
@Input
String appVersion = project.hasProperty('appVersion') ? project.appVersion : '1.0'
@OutputFile
def configFile = project.file('build/config.properties')
@TaskAction
void generateConfig() {
configFile.text = """
# Configuration generated by the Config Generator Plugin
app.name=$appName
app.version=$appVersion
"""
}
}
Propriétés Configurables :
Ajoutez des propriétés configurables au plugin pour permettre à l'utilisateur de personnaliser le contenu du fichier de configuration.
Exemple : appName, appVersion.
Utilisation du Plugin :
Appliquez le plugin dans le fichier build.gradle de votre projet principal.
Configurez les propriétés du plugin (par exemple, appName, appVersion).
Exécutez la tâche generateConfig pour générer le fichier de configuration personnalisé.
// build.gradle (du projet principal)
plugins {
id 'java'
id 'ConfigGeneratorPlugin'
}
configGenerator {
appName = 'MyApp'
appVersion = '1.2.3'
}
Testez Votre Plugin :
Créez un projet Java simple qui utilise votre fichier de configuration généré par le plugin.
Utilisez les valeurs du fichier de configuration dans votre application Java.
Points Bonus (Facultatifs) :
- Ajoutez une propriété pour spécifier le répertoire de destination du fichier de configuration.
- Ajoutez une documentation pour votre plugin en utilisant les commentaires Groovy spéciaux (/** ... */).
Ressources Utiles :
Documentation Gradle : https://docs.gradle.org/current/userguide/custom_plugins.html Documentation Groovy : http://groovy-lang.org/documentation.html