如何使用gradle kotlin dsl添加新的源集

如何使用gradle kotlin dsl添加新的源集,gradle,kotlin,gradle-kotlin-dsl,Gradle,Kotlin,Gradle Kotlin Dsl,我想添加一个sourcesetsrc/gen/java。使用groovy,这相当简单,在中已经描述过 但我坚持使用kotlin dsl来添加一个新的dsl。我只知道: java { sourceSets { } } 这里有人能帮忙吗?您应该尝试以下方法: java.sourceSets.create("src/gen/java") 希望这是你需要的 添加新源集时,@s1m0nw1的答案是正确的。 但要在现有源集中添加新的源文件夹,可以使用以下方法: java.sourceS

我想添加一个sourceset
src/gen/java
。使用groovy,这相当简单,在中已经描述过

但我坚持使用kotlin dsl来添加一个新的dsl。我只知道:

java {
    sourceSets {

    }
}

这里有人能帮忙吗?

您应该尝试以下方法:

java.sourceSets.create("src/gen/java")

希望这是你需要的

添加新源集时,@s1m0nw1的答案是正确的。 但要在现有源集中添加新的源文件夹,可以使用以下方法:

java.sourceSets["main"].java {
    srcDir("src/gen/java")
}

我想添加一个名为“testintegration”的源代码集和源目录
src/testintegration/kotlin
。我能够通过结合两个预先存在的答案来实现这一点:

java.sourceSets.create("test-integration").java {
    srcDir("src/test-integration/kotlin")
}

在Gradle 4.10.2上为我工作:

sourceSets.create("integrationTest") {
    java.srcDir("src/integrationTest/java")
    java.srcDir("build/generated/source/apt/integrationTest")
    resources.srcDir("src/integrationTest/resources")
}
sourceSets.getByName("main") {
    java.srcDir("src/main/java")
    java.srcDir("src/main/kotlin")
}
sourceSets.getByName("test") {
    java.srcDir("src/test/java")
    java.srcDir("src/test/kotlin")
}

在Gradle 4.10.2上为我工作:

sourceSets.create("integrationTest") {
    java.srcDir("src/integrationTest/java")
    java.srcDir("build/generated/source/apt/integrationTest")
    resources.srcDir("src/integrationTest/resources")
}
sourceSets.getByName("main") {
    java.srcDir("src/main/java")
    java.srcDir("src/main/kotlin")
}
sourceSets.getByName("test") {
    java.srcDir("src/test/java")
    java.srcDir("src/test/kotlin")
}

上述代码也可用于
子项目
块。

Thx。似乎不起作用。这似乎是一个有效的源代码,但是源代码没有被编译。嗯,在解决了我的问题之后,我发现我不需要新的源代码集(你的答案是正确的,添加一个新的源代码集),但是要在Gradle 6上现有的
main
sourceset中有一个新的源代码文件夹,就不能再使用它了,java.sourceset已经不存在了这对我来说也很有用。你是怎么找到这个答案的?它记录在哪里?在@s1m0nw1eclipse kotlin编辑器和插件给出的答案不完整且存在bug后,通过玩来记录。它们不提供代码完成提示。我已经停止使用eclipse,现在转而使用IntelliJ Idea,它确实让我看到了Gradle Kotlin DSL实现API的内部结构,因此我可以发现我可用的API调用。缺乏适当的文档是令人沮丧的,但现在希望有IntelliJ的代码完成提示;这不是一个很大的限制。我在我的kotlin项目中使用一个子模块作为kotlin库。省略第一部分
java
对我很有用。ie
SourceSet[“main”].java{srcDir(“src/main/kotlin”)}
你知道我为什么会出现错误吗
Android Gradle插件无法识别SourceSet“libs”。
当我调用
create(“libs”)