.kts
构建脚本中已弃用的 kotlinOptions
DSL 的用法。
kotlinOptions
DSL 在 Kotlin 2.0 中已被弃用。
该检查有助于从 kotlinOptions
迁移到 compilerOptions
。
它还会更改多个使用新类型的选项,而不是 String
类型。
KotlinCompile
任务的示例:
val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs = listOf("-module-name", "my_module_name")
apiVersion = "1.9"
}
该检查还会为类型已更改的选项添加 import:
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
...
val compileKotlin: KotlinCompile by tasks
compileKotlin.compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8)
freeCompilerArgs.set(listOf("-module-name", "my_module_name"))
apiVersion.set(KotlinVersion.KOTLIN_1_9)
}
Kotlin2JsCompile
任务的示例:
val compileKotlin: Kotlin2JsCompile by tasks
compileKotlin.kotlinOptions {
moduleKind = "commonjs"
sourceMapEmbedSources = "inlining"
sourceMapNamesPolicy = "fully-qualified-names"
main = "noCall"
}
应用该检查后:
import org.jetbrains.kotlin.gradle.dsl.JsMainFunctionExecutionMode
import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
import org.jetbrains.kotlin.gradle.dsl.JsSourceMapEmbedMode
import org.jetbrains.kotlin.gradle.dsl.JsSourceMapNamesPolicy
...
val compileKotlin: Kotlin2JsCompile by tasks
compileKotlin.compilerOptions {
moduleKind.set(JsModuleKind.MODULE_COMMONJS)
sourceMapEmbedSources.set(JsSourceMapEmbedMode.SOURCE_MAP_SOURCE_CONTENT_INLINING)
sourceMapNamesPolicy.set(JsSourceMapNamesPolicy.SOURCE_MAP_NAMES_POLICY_FQ_NAMES)
main.set(JsMainFunctionExecutionMode.NO_CALL)
}