كيفية ضبط توافق JVM لمهام compileJava (11) و compileKotlin (1.8) في build.gradle.kts؟
مرحبًا! أنا مبتدئ في Kotlin و Gradle Kotlin DSL. لدي مشروع متعدد الوحدات، وأريد أن يتم تجميع كل كود Java تحت Java 11، وكود Kotlin تحت نفس الإصدار (target JVM 1.8 قديم، أريد 11). أستخدم إضافة Kotlin 1.8.x وإضافة Java.
المشكلة: في ملف build.gradle.kts الخاص بي، أضبط sourceCompatibility و targetCompatibility لـ Java، لكن compileKotlin لا يزال يستخدم هدف JVM القديم. كيف يمكنني إصلاح هذا؟
إليك ملفي الحالي:
```kotlin
plugins {
kotlin("jvm") version "1.8.20"
java
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
tasks.withType {
kotlinOptions {
jvmTarget = "11" // أو "1.8"؟ خطأ!
}
}
```
عند البناء، أحصل على تحذير: "w: Using JVM 11 target is not supported for Kotlin JVM compiler 1.8.20" أو ببساطة عدم توافق. جربت تعيين `jvmTarget = "11"`، لكن Gradle يشتكي. في