Gradle Kotlin Native - Вы не указали аргументов компиляции.Выходные данные не были произведены - PullRequest
0 голосов
/ 03 июня 2018

Я довольно новичок в Gradle и Kotlin Native.Я хочу настроить свой build.gradle, чтобы я мог использовать Native для компиляции своего кода.Я использую плагин Konan для этого.Это работало нормально, когда я жестко запрограммировал свой класс в файле konanArtifacts.program.srcFiles.Но, очевидно, если я добавлю больше классов, мне придется добавить пути к srcFiles, и мне это не нужно (и не должно).Поэтому я посмотрел вокруг, чтобы найти способ добавить любые классы, которые добавляю автоматически, и попытался установить исходные наборы.Но когда я пытаюсь запустить задачу 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
    }
}

1 Ответ

0 голосов
/ 04 июня 2018

Исходные наборы являются частью мира Java и плагина Java, поэтому плагин Kotlin / Native избегает использовать их как независимые от Java.Но вы все еще можете скомпилировать несколько классов, просто укажите параметр srcDir:

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

Также обратите внимание, что src/main/kotlin/ является исходным путем по умолчанию.Поэтому, если вы используете только этот путь, вам не нужно указывать его явно.Вы можете просто написать:

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