Postavme kotlinovský projekt cez Gradle v Kotline

2019/07/16

Budovanie kotlinovských projektov

Čo ak chceme vybudovať projekt, ktorého zdrojáky sú v Kotline a gradloidný build script je… v Kotline? (Vložte yo-dawg-meme.png). Poďme na to!

V prvom rade potrebujeme deklarovať plugin, ktorý zapne podporu pre zostavovanie zdrojových kódov napísaných v Kotline. Do nového build scriptu uvedieme tri sekcie.

plugins {
    kotlin("jvm") version "1.3.41"
}

repositories {
    mavenCentral()
}

dependencies {
    implementation(kotlin("stdlib"))
}

Teraz sa môžeme pokúsiť zbuildovať projekt:

gradle assemble

Samozrejme, nestane sa nič užitočné, lebo nemáme žiadne zdrojáky!

Zdrojáky v Kotline

Kotlin očakáva zdrojáky v adresári src/main/kotlin, vytvorme ho teda.

 mkdir -p src/main/kotlin

V tomto adresári si môžeme veselo programovať. Môžeme vytvoriť Hello.kt s hlúpym obsahom:

fun main() {
    println("Hello!")
}

A veselo buildujme:

gradle assemble

V adresári build/libs sa objaví súbor JAR s výsledkom!

Zdrojáky pre moderné Javy

Vybuildované .class súbory pobežia aj na prastarej Java 6. To je síce super, ale mohli by sme sa posunúť.

Stačí parametrizovať kompilačný task:

tasks {
    withType<KotlinCompile> {
        kotlinOptions.jvmTarget = "1.8"
    }
}

Štandardná knižnica pre moderné Javy

Druhou vecou je štandardná knižnica Kotlinu, ktorá je stavaná na kompatibilitu a API pre šestkovú verziu Javy. To vyriešime inou závislosťou: namiesto všeobecnej stdlib použijeme stlib-jdk8.

Celý build script vyzerá nasledovne:

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("jvm") version "1.3.41"
}

repositories {
    mavenCentral()
}

dependencies {
    implementation(kotlin("stdlib-jdk8"))
}

tasks {
    withType<KotlinCompile> {
        kotlinOptions.jvmTarget = "1.8"
    }
}

Mavenovské nastavenia

Aby náš projekt bol naozaj kultúrny, nastavíme mu koordináty: teda mavenovskú skupinu a verziu:

group = "com.github.novotnyr"
version = "0.0.1-SNAPSHOT"

Nastavenia projektu settings.gradle.kts.

Názov projektu sa nastavuje na inom mieste, v samostatnom súbore settings.gradle.kts, ktorý sa tiež riadi kotlinovskou syntaxou.

Založme si ho s nasledovným obsahom:

// súbor settings.gradle.kts
rootProject.name = "gradle-boot-kotlin"

Teraz sa zostaví korektný súbor s názvom, ktorý spĺňa mavenovské konvencie, teda gradle-boot-kotlin-0.0.1-SNAPSHOT.jar

>> Home