我对Gradle和Kotlin Native很新。我想设置我的build.gradle,以便我可以使用Native来编译我的代码。我使用Konan插件来执行此操作。当我在konanArtifacts.program.srcFiles中对我的类进行硬编码时,它工作正常。但很明显,如果我添加更多课程,我必须添加srcFiles的路径,而且我不需要(并且不应该)。所以我环顾四周寻找一种方法来添加我自动添加的任何类,并尝试使用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
}
}
答案 0 :(得分:2)
源集是Java世界和Java插件的一部分,因此Kotlin / Native插件避免使用它们独立于Java。但是你仍然可以编译一堆类,只需指定srcDir
参数:
konanArtifacts {
program('client-' + version) {
srcDir 'src/main/kotlin/'
}
}
另请注意,src/main/kotlin/
是默认的源路径。因此,如果仅使用此路径,则无需显式指定。你可以写:
konanArtifacts {
program('client-' + version)
}