كيفية ضبط توافق JVM لـ compileJava (Java 11) و compileKotlin (Kotlin 1.8) في build.gradle.kts؟
مرحباً بالجميع! أنا مبتدئ في Kotlin وGradle، ولدي مشكلة في ضبط توافق إصدارات JVM لـ Java وKotlin في المشروع.
أستخدم Gradle مع Kotlin DSL (build.gradle.kts). المشروع يحتوي على كود مختلط: أساسي بلغة Kotlin 1.8، وبعض الفئات بلغة Java 11. عندما أقوم بتشغيل البناء، يظهر Gradle أخطاء تفيد أن مهام compileJava و compileKotlin تستخدم إصدارات JVM مستهدفة مختلفة. على سبيل المثال:
- compileJava مضبوط على Java 11 (target = 11)
- compileKotlin مضبوط على Java 8 (الافتراضي)
أريد أن يستخدم كلا المترجمين نفس إصدار JVM، مثلاً Java 11. لكن كيف يمكنني فعل ذلك بشكل صحيح في build.gradle.kts؟ جربت خيارات مختلفة لكن لم ينجح شيء.
إليك ملف build.gradle.kts الحالي:
```kotlin
plugins {
java
kotlin("jvm") version "1.8.0"
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
tasks.withType {
options.release.set(11)
}
```
لكن