Groovy og Gradle: JVM-automatisering og buildudvikling · Lektion

Skriv brugerdefinerede tasks i Kotlin DSL

Opret genanvendelige, typesikre brugerdefinerede Gradle-tasks med Kotlin DSL, typede properties, doven konfiguration og rene registreringsmønstre.

Lektion 4 af 413 trin

Skriv brugerdefinerede tasks i Kotlin DSL er en gratis Groovy og Gradle: JVM-automatisering og buildudvikling-lektion på CoddyKit. Dette er lektion 4 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 brugerdefinerede opgaver?

Indbyggede opgaver dækker almindeligt arbejde, men virkelige builds har brug for projektspecifik automatisering: kodegenerering, behandling af aktiver og brugerdefinerede kontroller. Kotlin DSL gør disse typesikre og læsbare.

Registrering af ad hoc-opgaver

Den enkleste opgave registreres direkte med en handlingsblok.

tasks.register("hello") {
    doLast {
        println("Hello from Gradle")
    }
}

register kontra create

Foretræk register frem for create: Registrering er lazy, så opgaven kun konfigureres, hvis der faktisk er brug for den, hvilket forbedrer konfigurationstiden.

Typesikre opgaveklasser

Til genanvendelig logik skal du definere en klasse, der udvider DefaultTask, med en annoteret handling.

abstract class GreetTask : DefaultTask() {
    @TaskAction
    fun run() {
        println("Hi")
    }
}

Typesikre egenskaber

Brug Gradle-egenskabstyper til lazy, konfigurerbare input, der integreres med build-modellen.

abstract class GreetTask : DefaultTask() {
    @get:Input
    abstract val name: Property<String>
}

Registrering af en typesikker opgave

Registrér klassen, og konfigurér dens egenskaber i Kotlin DSL med fuld typekontrol.

tasks.register<GreetTask>("greet") {
    name.set("Ada")
}

Input og output

Annotér egenskaber, så Gradle kan gøre opgaven inkrementel og cache-egnet.

@get:OutputFile
abstract val report: RegularFileProperty

Lazy-konfiguration

Lazy Provider-værdier udskyder beregningen, indtil der er brug for den, så arbejde under konfiguration undgås, og korrekte opgaveafhængigheder kan aktiveres.

val versionProvider = providers.gradleProperty("appVersion")

Sammenkobling af opgaveafhængigheder

Udtryk rækkefølgen med dependsOn, eller forbind endnu bedre outputtet fra én opgave med inputtet til en anden, så Gradle selv udleder rækkefølgen.

tasks.register("publishDocs") {
    dependsOn("generateDocs")
}

Genbrug på tværs af moduler

Flyt opgaveklassen til buildSrc eller et konventionsplugin, så alle moduler kan registrere den uden duplikering.

Fordele ved Kotlin DSL

Sammenlignet med Groovy giver Kotlin DSL:

  • IDE-autofuldførelse og refaktorering
  • Fejlfinding ved kompilering
  • Nem navigation til opgavernes kilder

Hurtigt tjek

Test din forståelse af brugerdefinerede opgaver.

Opsummering

Du har lært om brugerdefinerede opgaver i Kotlin DSL:

  • Brug lazy register frem for create
  • Definér typesikre opgaver, der udvider DefaultTask
  • Brug Property og annoteringer til typesikre input og output
  • Genbrug via buildSrc eller konventionsplugins
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 “Skriv brugerdefinerede tasks i Kotlin DSL” gratis?

Ja — hele teksten til “Skriv brugerdefinerede tasks i Kotlin DSL” 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 “Skriv brugerdefinerede tasks i Kotlin DSL”?

Opret genanvendelige, typesikre brugerdefinerede Gradle-tasks med Kotlin DSL, typede properties, doven konfiguration og rene registreringsmønstre. 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 4 af 4.

Hvor lang tid tager lektionen “Skriv brugerdefinerede tasks i Kotlin DSL”?

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. Kotlin DSL til Gradle
  2. Polyglotte projekt-builds
  3. IDE-integration og tooling
  4. Skriv brugerdefinerede tasks i Kotlin DSL
← Tilbage til Groovy og Gradle: JVM-automatisering og buildudvikling