如何替换 java-library 和 kotlin 模块中已弃用的 kotlinOptions?

JJD*_*JJD 5 groovy android deprecated kotlin java-module

在我的 Android 应用程序项目中,我对库模块使用以下Gradle (Groovy) 配置:

// build.gradle

apply plugin: "java-library"
apply plugin: "kotlin"

dependencies {
    api Libs.engelsystem
    implementation(Libs.retrofit) {
        exclude group: "com.squareup.okio", module: "okio"
    }

    testImplementation Libs.junit
    testImplementation Libs.kotlinCoroutinesTest
    testImplementation Libs.mockitoKotlin
    testImplementation Libs.okhttpMockWebServer
    testImplementation Libs.retrofitConverterMoshi
    testImplementation Libs.truth
}

sourceCompatibility = Config.compatibleJavaVersion
targetCompatibility = Config.compatibleJavaVersion

compileKotlin {
    kotlinOptions {
        jvmTarget = Config.compatibleJavaVersion // is set to JavaVersion.VERSION_11
        freeCompilerArgs += [
                "-opt-in=kotlin.RequiresOptIn"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

Android Studio Giraffe / Lint 通知我kotlinOptions弃用

快速提示的屏幕截图

没有可以应用的快速修复方法。如何正确替换符号?这种库模块似乎有不同的语法。com.android.library模块中和模块中都没有弃用警告com.android.application。如果这是一个重要的区别,那么两者都使用该kotlin-android插件。

潜在的答案

...将它们视为非官方弃用...

来源: https: //youtrack.jetbrains.com/issue/KT-27301/Expose-compiler-flags-via-Gradle-lazy-properties#focus=Comments-27-6565858.0-0

有关的

Jar*_*ows 2

编译任务具有新compilerOptions输入,该输入与现有输入类似kotlinOptions,但使用Properties API中的PropertyGradle作为返回类型。

这是您更新的代码:

import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile


tasks.withType(KotlinJvmCompile).configureEach {
  compilerOptions {
    jvmTarget.set(JvmTarget.JVM_11)
    freeCompilerArgs.add("-opt-in=kotlin.RequiresOptIn")
  }
}
Run Code Online (Sandbox Code Playgroud)

参考: