Gradle Kotlin Native - Вы не указали аргументов компиляции. Выходные данные не были произведены
Я довольно новичок в 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 ответ
Исходные наборы являются частью мира Java и плагина Java, поэтому плагин Kotlin/Native избегает использования их как независимых от Java. Но вы все еще можете скомпилировать кучу классов, просто укажите srcDir
параметр:
konanArtifacts {
program('client-' + version) {
srcDir 'src/main/kotlin/'
}
}
Также обратите внимание, что src/main/kotlin/
является исходным путем по умолчанию. Поэтому, если вы используете только этот путь, вам не нужно указывать его явно. Вы можете просто написать:
konanArtifacts {
program('client-' + version)
}