280db663c7
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2.5 KiB
2.5 KiB
type, status, owner, tags
| type | status | owner | tags | ||||
|---|---|---|---|---|---|---|---|
| Reference | ACTIVE | Lead Architect |
|
Tech-Stack Referenz: Kotlin 2.3.21 & Java 25 (KMP)
Kontext: Dieses Dokument beschreibt die notwendigen Konfigurationen, um Kotlin 2.3.21 mit Java 25 in einem Kotlin Multiplatform (KMP) Projekt mit Gradle 9.x zu verwenden.
1. Kern-Spezifikationen
| Komponente | Version | Status |
|---|---|---|
| Kotlin | 2.3.21 |
Stabil (K2 Compiler standardmäßig aktiv) |
| Java (JDK) | 25 |
LTS (Long-Term Support) |
| Gradle | 9.5.0 |
Erforderlich für JDK 25 Support |
| Android Plugin (AGP) | 8.8.0+ |
Empfohlen für Gradle 9.x Kompatibilität |
2. Gradle Konfiguration (build.gradle.kts)
Für ein Kotlin Multiplatform (KMP) Projekt ist die Java Toolchain-Konfiguration entscheidend, um sicherzustellen, dass der Kotlin-Compiler und die JVM-Targets Java 25 korrekt ansprechen.
plugins {
kotlin("multiplatform") version "2.3.21"
id("com.android.library") version "8.8.0" // Falls Android Target genutzt wird
}
kotlin {
// Globale Toolchain-Definition für alle JVM/Android Targets
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(25))
}
jvm {
compilations.all {
compilerOptions.configure {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_25)
}
}
}
// Weitere Targets (Beispiel iOS)
iosArm64()
iosSimulatorArm64()
}
3. Gradle Wrapper Update
Damit das Projekt Java 25 erkennt, muss der Wrapper auf dem neuesten Stand sein:
Terminal-Befehl:
./gradlew wrapper --gradle-version 9.5.0 --distribution-type all
4. Wichtige Kompatibilitätshinweise
- IDE-Version: IntelliJ IDEA 2025.3 (oder neuer) wird für die volle Unterstützung von JDK 25 und dem Kotlin 2.3.21 Plugin empfohlen.
- K2 Compiler: Kotlin 2.3.21 nutzt den K2-Compiler.
- Bytecode: Java 25 Bytecode wird nur generiert, wenn das
jvmTargetexplizit auf25gesetzt ist.
5. Bekannte Features in diesem Setup
- Java 25 Features: Unterstützung für die finalen Versionen von Scoped Values und Structured Concurrency.
- Kotlin 2.3.21 Features: Nutzung von
explicit backing fieldsund dem verbessertenunused return valueChecker.