Artikel 1 : Een Gradle-plugin maken van A tot Z met de opdracht gradle init
Gepubliceerd op 23 September 2025
Inleiding
Een nieuw Gradle-pluginproject starten kan overweldigend lijken. Gelukkig biedt Gradle een krachtige interactieve assistent, de taak`init`, die een volledige, nette en klaar-voor-gebruik projectstructuur genereert. Deze handleiding laat je zien hoe je dit hulpmiddel kunt gebruiken om een gezonde plug‑inbasis te maken, legt de structuur uit en laat je zien hoe je de eerste build‑taken kunt uitvoeren.
Stap 1: Start de projectwizard
De opdracht`gradle init`is het startpunt. Zij lanceert een commandoregelassistent die u een reeks vragen stelt om het project te configureren.
Open je terminal in een lege map en voer uit :
gradle init
De assistent zal je begeleiden. Hier zijn de keuzes die je moet maken voor een Gradle-plugin geschreven in Kotlin:
-
Selecteer het type project om te genereren:Kies`Gradle plugin`.
-
Selecteer implementatietaal:Kies`Kotlin`.
-
Selecteer build script DSL:Kies`Kotlin`.
-
Projectnaam:Voer een naam in voor uw project (voorbeeld:`site-baker`)).
-
Plug‑in id:Geef uw plug-in een unieke id (bijv:`com.cheroliv.site-baker`).
-
Plugin klasse:Geef de naam van de implementatieklasse op (bijv:`com.cheroliv.SiteBakerPlugin`)
Zodra het voltooid is, genereert Gradle een volledige bestandstructuur.
@startuml start :Lancer `gradle init`; :Choisir "Gradle-plugin"; :Choisir "Kotlin" (langage); :Choisir "Kotlin" (DSL); :Saisir nom, ID, et classe; :Projet généré; stop @enduml
Stap 2: Begrijp de gegenereerde structuur
De assistent maakt een multi-module projectstructuur aan, waarbij het rootproject wordt gescheiden van de broncode van de plug-in zelf.
.
├── gradle/
│ └── wrapper/
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── plugin/
│ ├── build.gradle.kts
│ └── src/
│ ├── main/
│ │ └── kotlin/
│ │ └── com/cheroliv/SiteBakerPlugin.kt
│ ├── test/
│ │ └── kotlin/
│ │ └── com/cheroliv/SiteBakerPluginTest.kt
│ └── functionalTest/
│ └── kotlin/
│ └── com/cheroliv/SiteBakerPluginFunctionalTest.kt
└── settings.gradle.kts
Belangrijke bestanden en mappen
-
settings.gradle.kts: Dit bestand in de root definieert de modules die in de build zijn opgenomen. Hier neemt het het subproject op`plugin`.
[source,kotlin] ---- rootProject.name = "site-baker include("plugin")