Appearance
构建 Kotlin 应用
build.gradle.kts
kotlin
plugins {
kotlin("jvm") version "1.9.22"
application
}
group = "com.example"
version = "1.0.0"
repositories {
mavenCentral()
}
application {
mainClass.set("com.example.MainKt")
}
dependencies {
implementation(kotlin("stdlib"))
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
testImplementation(kotlin("test"))
testImplementation("org.junit.jupiter:junit-jupiter:5.10.1")
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
jvmTarget = "17"
freeCompilerArgs = listOf("-Xjsr305=strict")
}
}
tasks.named<Test>("test") {
useJUnitPlatform()
}源码示例
kotlin
// src/main/kotlin/com/example/Main.kt
package com.example
import kotlinx.coroutines.*
suspend fun fetchData(id: Int): String {
delay(100) // 模拟网络请求
return "Data for id=$id"
}
fun main() = runBlocking {
val results = (1..5).map { id ->
async { fetchData(id) }
}.awaitAll()
results.forEach { println(it) }
println("All done!")
}测试
kotlin
// src/test/kotlin/com/example/MainTest.kt
package com.example
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
class MainTest {
@Test
fun `addition works correctly`() {
assertEquals(4, 2 + 2)
}
}运行
bash
./gradlew run
./gradlew test
./gradlew jar
java -jar build/libs/kotlin-app-1.0.0.jar