Gradle Kotlin Native - 您没有指定任何编译参数。没有产生输出

Gradle Kotlin Native - You have not specified any compilation arguments. No output has been produced

我对 Gradle 和 Kotlin Native 还很陌生。我想设置我的 build.gradle 以便我可以使用 Native 来编译我的代码。我正在使用 Konan 插件来执行此操作。当我在 konanArtifacts.program.srcFiles 中硬编码我的 class 时,它工作正常。但很明显,如果我添加更多 classes,我将不得不添加到 srcFiles 的路径,而我不需要(也不应该)这样做。所以我四处寻找一种方法来添加我自动添加的任何 classes,并且我尝试了 sourceSets。但是当我现在尝试 运行 compileKonanClientMingw 任务时,我的 gradle 控制台给了我以下信息:

error: you have not specified any compilation arguments. No output has been produced.

我不完全确定我是否正确使用了 sourceSets,但这似乎是我得到的最远的。下面是我的build.gradle

build.gradle:

buildscript {
    ext.kotlin_version = '1.2.41'
    ext.konan_version = '0.6'

    repositories {
        mavenCentral()
        maven {
            url  "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
        }
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:$konan_version"
    }
}

plugins {
    id 'java'
}

group 'net.dev909'
version '1.0'

apply plugin: 'kotlin'
apply plugin: 'konan'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

sourceSets.main.allSource.srcDir '/src/main/kotlin/'

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

konanArtifacts {
    program('client-' + version) {
        srcFiles sourceSets.main.runtimeClasspath
    }
}

源集是 Java 世界和 Java 插件的一部分,因此 Kotlin/Native 插件避免使用它们来独立于 Java。但是你仍然可以编译一堆类,只需指定srcDir参数:

konanArtifacts {
    program('client-' + version) {
        srcDir 'src/main/kotlin/'
    }
}

另请注意,src/main/kotlin/ 是默认源路径。所以如果你只使用这个路径,你不需要明确指定它。你可以只写:

konanArtifacts {
    program('client-' + version)
}