Groovy og Gradle: JVM-automatisering og buildudvikling · Lektion

Opbygning af binære plugins

Udvikl selvstændige binære plugins med Groovy eller Java, og pak dem til distribution.

Lektion 2 af 411 trin

Opbygning af binære plugins er en gratis Groovy og Gradle: JVM-automatisering og buildudvikling-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Groovy og Gradle: JVM-automatisering og buildudvikling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Groovy og Gradle: JVM-automatisering og buildudvikling-kurset indeholder 4 lektioner i alt.

Hvorfor binære plugins?

Velkommen! I denne lektion dykker vi ned i at bygge binære plugins til Gradle. I modsætning til enklere script-plugins er binære plugins kompileret kode (Java eller Groovy), der giver bedre genanvendelighed og struktur.

  • Genanvendelighed: Del dem nemt på tværs af mange projekter.
  • Indkapsling: Hold din buildlogik ren og organiseret.
  • Testbarhed: Det er nemmere at enhedsteste kompleks logik.

Opsætning af dit pluginprojekt

Et binært plugin udvikles typisk i sit eget Gradle-projekt. Til lokal udvikling er det almindeligt at placere pluginets kildekode i mappen buildSrc i dit hovedprojekt.

Standardstrukturen ser sådan ud:

  • rootProject/
  • buildSrc/
  • src/main/groovy/com/coddykit/plugins/
  • MyPlugin.groovy
  • build.gradle
  • build.gradle (til forbrugerprojektet)

Grænsefladen Plugin<Project>

Alle binære Gradle-plugins skal implementere grænsefladen org.gradle.api.Plugin, nærmere bestemt Plugin<Project>. Denne grænseflade definerer én metode: apply(Project project).

Objektet Project, der sendes til apply, er det projekt, som pluginnet anvendes på. Det er dit udgangspunkt for at konfigurere projektet.

package com.coddykit.plugins

import org.gradle.api.Plugin
import org.gradle.api.Project

class MyFirstPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        // Plugin logic goes here
        // You can add tasks, extensions, etc.
    }
}

Pluginnets kerne: apply-metoden

Metoden apply er stedet, hvor magien i dit plugin sker. Inde i denne metode kan du udføre forskellige handlinger for at konfigurere målprojektet, f.eks.:

  • Oprette brugerdefinerede opgaver.
  • Tilføje nye konfigurationer.
  • Registrere udvidelser til brugerkonfiguration.
  • Anvende andre plugins.

Denne metode køres, når Gradle anvender dit plugin på et projekt.

Tilføjelse af en simpel opgave

Lad os oprette et grundlæggende plugin, der tilføjer en brugerdefineret opgave med navnet helloGradle til alle projekter, som det anvendes på. Denne opgave udskriver blot en hilsen.

Vi placerer denne klasse i buildSrc/src/main/groovy/com/coddykit/plugins/GreetingPlugin.groovy.

package com.coddykit.plugins

import org.gradle.api.Plugin
import org.gradle.api.Project

class GreetingPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        project.tasks.create('helloGradle') {
            doLast {
                println "Hello from CoddyKit's Greeting Plugin!"
            }
        }
    }
}

Erklæring af dit plugin-id

For at gøre dit plugin synligt skal du angive et entydigt id for det i pluginprojektets build.gradle-fil. Det knytter din pluginklasse til et id, som projekter, der bruger pluginet, skal benytte.

Dette eksempel på en build.gradle-fil placeres i buildSrc/build.gradle.

plugins {
    id 'java-gradle-plugin' // Enables Gradle plugin development features
    id 'groovy' // If your plugin is written in Groovy
}

repositories {
    mavenCentral()
}

dependencies {
    implementation gradleApi() // Provides Gradle API classes
    implementation localGroovy() // Provides Groovy classes
}

gradlePlugin {
    plugins {
        greetingPlugin {
            id = 'com.coddykit.greeting'
            implementationClass = 'com.coddykit.plugins.GreetingPlugin'
        }
    }
}

// To build this plugin: gradle build (from buildSrc dir)

Brug af dit eget plugin

Nu hvor vores GreetingPlugin er defineret og har et id, kan vi anvende det i et projekt, der bruger pluginet. Hvis pluginet ligger i buildSrc, er det automatisk tilgængeligt for rodprojektet.

Føj dette til rodprojektets build.gradle-fil:

plugins {
    id 'com.coddykit.greeting' // Apply our custom plugin by ID
}

// To run the task:
// 1. Ensure GreetingPlugin is in buildSrc
// 2. Open terminal in your project's root
// 3. Run: gradle helloGradle

Pluginudvidelser til konfiguration

Hvis du vil udvikle effektive og fleksible plugins, skal du give brugerne mulighed for at konfigurere dem. Gradles udvidelser er objekter, som plugins føjer til et projekt, og som leverer et DSL (Domain Specific Language) til konfiguration.

Du definerer en udvidelsesklasse med egenskaber og registrerer den derefter i dit plugins apply-metode. Brugerne kan så konfigurere disse egenskaber i deres build.gradle-fil.

Plugin med konfiguration

Her er et eksempel på et plugin, der bruger en udvidelse. Først definerer udvidelsesklassen (CoddyKitExtension.groovy) egenskaber, der kan konfigureres. Derefter opretter pluginet (ConfigurablePlugin.groovy) en instans af denne udvidelse og registrerer den med projektet. Det opretter også en opgave, der bruger den konfigurerede meddelelse.

// src/main/groovy/com/coddykit/plugins/CoddyKitExtension.groovy
package com.coddykit.plugins

class CoddyKitExtension {
    String message = "Default CoddyKit message"
}

// src/main/groovy/com/coddykit/plugins/ConfigurablePlugin.groovy
package com.coddykit.plugins

import org.gradle.api.Plugin
import org.gradle.api.Project

class ConfigurablePlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        // Create and register the extension
        def extension = project.extensions.create('coddyKit', CoddyKitExtension)

        project.tasks.create('displayConfigMessage') {
            doLast {
                println "CoddyKit Plugin says: ${extension.message}"
            }
        }
    }
}

Kontrol af binært plugin

Hvilke af følgende er de vigtigste fordele ved at bruge et binært Gradle-plugin sammenlignet med et simpelt scriptplugin?

Opsummering: Oprettelse af binære plugins

Godt arbejde! Du har lært det grundlæggende i at oprette binære Gradle-plugins:

  • Binære plugins giver genbrugelighed, indkapsling og mulighed for test af din buildlogik.
  • De implementerer interfacet Plugin<Project>, og kernelogikken ligger i apply-metoden.
  • Du angiver et entydigt plugin-id i dit pluginprojekts build.gradle-fil.
  • Udvidelser giver brugerne mulighed for at konfigurere dit plugin.

Derefter undersøger vi, hvordan du anvender og publicerer disse effektive plugins!

Gratis at komme i gang

Lær Groovy med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Opbygning af binære plugins” gratis?

Ja — hele teksten til “Opbygning af binære plugins” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Groovy og Gradle: JVM-automatisering og buildudvikling-kurset, skal du opgradere til CoddyKit PRO. Groovy og Gradle: JVM-automatisering og buildudvikling-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Opbygning af binære plugins”?

Udvikl selvstændige binære plugins med Groovy eller Java, og pak dem til distribution. Du øver dig i Groovy og Gradle: JVM-automatisering og buildudvikling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Groovy og Gradle: JVM-automatisering og buildudvikling?

Der kræves ingen tidligere erfaring. Groovy og Gradle: JVM-automatisering og buildudvikling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Opbygning af binære plugins”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Groovy og Gradle: JVM-automatisering og buildudvikling-lektion?

Ja. Alle Groovy og Gradle: JVM-automatisering og buildudvikling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Forstå Gradle-plugins
  2. Opbygning af binære plugins
  3. Anvendelse og publicering af plugins
  4. Plugin-udvidelser og konfigurerbare DSL'er
← Tilbage til Groovy og Gradle: JVM-automatisering og buildudvikling