如何使用 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 docs: using Gradle

如果有人在使用 kotlin DSL,你也可以试试这个:

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions.includeRuntime = true