Groovy og Gradle: JVM-automatisering og byggeutvikling · leksjon

Kotlin-DSL for Gradle

Migrer `build.gradle`-skriptene Deres til `build.gradle.kts` ved hjelp av Kotlin-DSL for bedre lesbarhet og typesikkerhet.

Leksjon 1 av 411 trinn

Kotlin-DSL for Gradle er en gratis leksjon i Groovy og Gradle: JVM-automatisering og byggeutvikling på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Groovy og Gradle: JVM-automatisering og byggeutvikling, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Groovy og Gradle: JVM-automatisering og byggeutvikling inneholder totalt 4 leksjoner.

Velkommen til Kotlin DSL

Velkommen til Kotlin DSL for Gradle! I denne leksjonen utforsker vi hvordan De kan bytte fra Groovy DSL til Kotlin DSL i Gradle-byggskriptene Deres.

Kotlin DSL gir bedre lesbarhet og typesikkerhet, slik at byggfilene blir mer robuste og enklere å vedlikeholde. Det er en moderne måte å definere Gradle-prosjekter på.

Hvorfor Kotlin DSL?

Hvorfor bør De bytte til Kotlin DSL?

  • Typesikkerhet: Kotlin DSL er statisk typet, noe som betyr at kompilatoren kan oppdage feil ved bygging, ikke under kjøring. Dette reduserer overraskelser!
  • IDE-støtte: Få bedre autofullføring, refaktorering og navigering i IDE-en Deres (for eksempel IntelliJ IDEA) fordi den forstår typene.
  • Lesbarhet: Kotlins konsise syntaks gjør ofte byggskript tydeligere, særlig ved kompleks logikk.
  • Konsistens: Hvis prosjektet allerede bruker Kotlin i applikasjonskoden, gir Kotlin DSL enhetlighet i hele kodebasen.

Grunnleggende syntaks: Plugins-blokken

La oss begynne med en grunnleggende forskjell: hvordan De bruker plugins. I Kotlin DSL endres filendelsen for byggskriptet fra .gradle til .gradle.kts.

Legg merke til bruken av id("plugin-id") og den valgfrie version "..." når plugins brukes.

plugins {
    id("java")
    id("application") version "8.1.0"
}

Deklarering av avhengigheter

Deklarering av avhengigheter ligner svært på Groovy DSL, men bruker Kotlins syntaks for funksjonskall. De bruker navngitte argumenter for avhengighetsstrengen.

Slik kan De legge til vanlige avhengigheter som JUnit for testing og Apache Commons for hjelpefunksjoner.

dependencies {
    implementation("org.slf4j:slf4j-api:2.0.7")
    testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.0")
}

Definering av egendefinerte tasks

Det er enkelt å opprette egendefinerte tasks i Kotlin DSL. De bruker tasks.register("taskName") { ... } for å definere en ny task.

Inne i lambda-uttrykket kan De konfigurere tasken, for eksempel ved å legge til en doLast-handling som kjører kode når tasken kjøres.

tasks.register("helloKotlin") {
    group = "Greeting"
    description = "Prints a friendly message using Kotlin DSL."
    doLast {
        println("Hello from a Kotlin DSL task!")
    }
}

Konfigurering av eksisterende tasks

De kan også konfigurere eksisterende tasks, som den innebygde jar-tasken, ved hjelp av tasks.getByName("taskName") { ... }. Dette lar Dem tilpasse virkemåten deres.

De kan for eksempel angi basisnavnet på JAR-filen eller legge til en manifestoppføring.

tasks.getByName<Jar>("jar") {
    archiveBaseName.set("my-app-kotlin")
    manifest {
        attributes["Implementation-Title"] = project.name
        attributes["Implementation-Version"] = project.version
    }
}

Prosjektegenskaper og variabler

Det er også typesikkert å få tilgang til prosjektegenskaper og definere variabler. De kan deklarere egenskaper som group og version ved hjelp av egenskapstildeling.

For lokale variabler bruker De Kotlins nøkkelord val eller var, noe som gir bedre tydelighet og hindrer utilsiktede tilordninger på nytt.

group = "com.example"
version = "1.0.0"

val myProperty = "Some Value"

tasks.register("printProps") {
    doLast {
        println("Project Group: $group")
        println("My Property: $myProperty")
    }
}

Typesikre tilgangsmetoder

En viktig fordel med Kotlin DSL er typesikre tilgangsmetoder. For vanlige plugins som Java får De dedikerte blokker og egenskaper med full autofullføring i IDE-en.

I stedet for strengbasert tilgang til egenskaper bruker De objektorientert syntaks. Det gjør det vanskeligere å skrive feil og enklere å finne tilgjengelige alternativer.

java {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

application {
    mainClass.set("com.example.MainApp")
}

Migrering av et enkelt Groovy-skript

La oss se på en rask sammenligning for å se hvordan et lite utdrag av Groovy DSL oversettes til Kotlin DSL. Legg merke til bruken av id("..."), implementation(...) og egenskapstildeling.

Strukturen er fortsatt lik, men syntaksen blir mer eksplisitt og typesjekket.

// Groovy DSL (build.gradle)
// plugins {
//     id 'java'
// }
// dependencies {
//     implementation 'org.apache.commons:commons-lang3:3.12.0'
// }

// Kotlin DSL (build.gradle.kts)
plugins {
    java
}

dependencies {
    implementation("org.apache.commons:commons-lang3:3.12.0")
}

Kunnskapssjekk om Kotlin DSL

Hvilke av de følgende er viktige fordeler ved å bruke Kotlin DSL fremfor Groovy DSL i Gradle-byggskript?

Oppsummering: Kotlin DSL for Gradle

I denne leksjonen har vi utforsket fordelene ved og den grunnleggende syntaksen til Kotlin DSL for Gradle.

  • De har lært hvorfor typesikkerhet, IDE-støtte og lesbarhet gjør Kotlin DSL til et kraftig valg.
  • Vi har gått gjennom hvordan De bruker plugins, deklarerer avhengigheter og definerer/konfigurerer tasks ved hjelp av filendelsen .gradle.kts.
  • De har også sett hvordan De arbeider med prosjektegenskaper og bruker typesikre tilgangsmetoder for vanlige konfigurasjoner.

Ved å ta i bruk Kotlin DSL kan De oppnå mer robuste og vedlikeholdbare Gradle-bygg!

Gratis å komme i gang

Lær deg Groovy med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Kotlin-DSL for Gradle» gratis?

Ja – hele teksten i «Kotlin-DSL for Gradle» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Groovy og Gradle: JVM-automatisering og byggeutvikling-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Groovy og Gradle: JVM-automatisering og byggeutvikling inneholder totalt 4 leksjoner.

Hva lærer jeg i «Kotlin-DSL for Gradle»?

Migrer `build.gradle`-skriptene Deres til `build.gradle.kts` ved hjelp av Kotlin-DSL for bedre lesbarhet og typesikkerhet. Du øver på Groovy og Gradle: JVM-automatisering og byggeutvikling med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Groovy og Gradle: JVM-automatisering og byggeutvikling?

Ingen tidligere erfaring er nødvendig. Groovy og Gradle: JVM-automatisering og byggeutvikling på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Kotlin-DSL for Gradle»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Groovy og Gradle: JVM-automatisering og byggeutvikling-leksjonen?

Ja. Alle Groovy og Gradle: JVM-automatisering og byggeutvikling-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Kotlin-DSL for Gradle
  2. Polyglotte prosjektbygg
  3. IDE-integrasjon og verktøy
  4. Skrive egendefinerte oppgaver i Kotlin DSL
← Tilbake til Groovy og Gradle: JVM-automatisering og byggeutvikling