Skriv brugerdefinerede tasks i Kotlin DSL
Opret genanvendelige, typesikre brugerdefinerede Gradle-tasks med Kotlin DSL, typede properties, doven konfiguration og rene registreringsmønstre.
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: RegularFilePropertyLazy-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
registerfrem forcreate - Definér typesikre opgaver, der udvider
DefaultTask - Brug
Propertyog annoteringer til typesikre input og output - Genbrug via
buildSrceller konventionsplugins
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
- Kotlin DSL til Gradle
- Polyglotte projekt-builds
- IDE-integration og tooling
- Skriv brugerdefinerede tasks i Kotlin DSL