.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"
}
//OR
tasks.withType {
kotlinOptions {
freeCompilerArgs += listOf("-module-name", "my_module_name")
}
}
이 검사는 변경된 타입이 있는 옵션에 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)
}