首页 > 解决方案 > 未解决的参考:build.gradle.kts 中的 compileKotlin

问题描述

由 build.gradle 构建的 Kotlin 项目成功:

compileKotlin {
    kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8
}
compileTestKotlin {
    kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8
}

好的。

但我需要更改为build.gradle.kts

 plugins {
    kotlin("jvm") version "1.2.10"
    id("application")
}

group = "com.myproject"
version = "1.0-SNAPSHOT"

application {
    mainClassName = "MainKt"
}

java.sourceCompatibility = JavaVersion.VERSION_1_8

repositories {
    mavenCentral()
    jcenter()
}

val kotlinVer = "1.2.10"

dependencies {
    compile(kotlin(module = "stdlib-jre8", version = kotlinVer))
    implementation("com.google.code.gson:gson:2.7")
    implementation("com.squareup.okhttp3:logging-interceptor:3.8.0")
    implementation("com.squareup.retrofit2:converter-gson:2.1.0")
    implementation("com.squareup.retrofit2:retrofit:2.5.0")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")

}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

现在我得到错误:

Line 32: compileKotlin {
           ^ Unresolved reference: compileKotlin

标签: gradlekotlingradle-kotlin-dsl

解决方案


Kotlin Gradle DSL 中存在导致此问题的问题。

https://github.com/gradle/kotlin-dsl-samples/issues/1368

您将需要使用以下解决方法,直到它得到解决。

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

推荐阅读