如何使用 Gradle 将编译器参数传递给 Kotlin 编译器
How to pass compiler arguments to Kotlin Compiler with Gradle
我正在使用 Kotlin gradle 插件编译带有 Gradle 的 Kotlin 库 jar:
apply plugin: 'kotlin'
我试图找到一种方法将简单的 -include-runtime
编译器参数传递给 kotlin 编译器。我似乎根本找不到任何关于此的文档。我尝试模仿 java 插件,但这似乎不起作用。 Here 是一些关于使用命令行编译器的文档,但是 gradle 文档没有提到任何关于传递编译器参数的内容。
试试这个:
compileKotlin {
kotlinOptions.includeRuntime = true
}
UPD 顺便说一句,这个确切的选项 includeRuntime
无法工作,因为它不是 Gradle 方式。在 Gradle 中有很多选项可以构建具有依赖关系的 jar:Gradle – Create a Jar file with dependencies, Gradle Shadow
您可以在 kotlinOptions
闭包中为 KotlinCompile
类型的任务指定编译器参数。对于所有这些,例如:
allprojects {
...
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = '1.6'
freeCompilerArgs += '-include-runtime'
}
}
}
如果有人在使用 kotlin DSL,你也可以试试这个:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions.includeRuntime = true
我正在使用 Kotlin gradle 插件编译带有 Gradle 的 Kotlin 库 jar:
apply plugin: 'kotlin'
我试图找到一种方法将简单的 -include-runtime
编译器参数传递给 kotlin 编译器。我似乎根本找不到任何关于此的文档。我尝试模仿 java 插件,但这似乎不起作用。 Here 是一些关于使用命令行编译器的文档,但是 gradle 文档没有提到任何关于传递编译器参数的内容。
试试这个:
compileKotlin {
kotlinOptions.includeRuntime = true
}
UPD 顺便说一句,这个确切的选项 includeRuntime
无法工作,因为它不是 Gradle 方式。在 Gradle 中有很多选项可以构建具有依赖关系的 jar:Gradle – Create a Jar file with dependencies, Gradle Shadow
您可以在 kotlinOptions
闭包中为 KotlinCompile
类型的任务指定编译器参数。对于所有这些,例如:
allprojects {
...
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = '1.6'
freeCompilerArgs += '-include-runtime'
}
}
}
如果有人在使用 kotlin DSL,你也可以试试这个:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions.includeRuntime = true