28

我想添加一个 sourceset src/gen/java。使用 groovy,这相当容易,并且已经在https://discuss.gradle.org/t/how-to-use-gradle-with-generated-sources/9401/5中进行了描述

sourceSets {
   gen {
        java.srcDir "src/gen/java"
    }
}

但我坚持使用 kotlin-dsl 添加一个新的。我所拥有的是:

java {
    sourceSets {

    }
}

任何人都可以在这里帮助

4

6 回答 6

19

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

java.sourceSets["main"].java {
    srcDir("src/gen/java")
}
于 2017-09-27T06:24:37.230 回答
16

您应该尝试以下方法:

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

希望这是你需要的!

于 2017-09-26T19:21:41.703 回答
14

在 Gradle 4.10.2 上为我工作:

sourceSets.create("integrationTest") {
    java.srcDir("src/integrationTest/java")
    java.srcDir("build/generated/source/apt/integrationTest")
    resources.srcDir("src/integrationTest/resources")
}
于 2018-10-08T12:21:14.720 回答
9

在 Gradle 4.10.2 上为我工作:

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")
}

上面的代码也可以在subprojects块中使用。

于 2019-10-12T11:25:07.350 回答
6

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

java.sourceSets.create("test-integration").java {
    srcDir("src/test-integration/kotlin")
}
于 2018-05-31T23:16:42.133 回答
-1

这是我之前的:

main.kotlin.srcDirs = main.java.srcDirs = ['src']
test.kotlin.srcDirs = test.java.srcDirs = ['test']
main.resources.srcDirs = ['resources']
test.resources.srcDirs = ['testresources']

上面现在转换为:

sourceSets {
main {
    java {
        srcDirs("src")
    }
    resources {
        srcDirs("resources")
    }
}
test {
    java {
        srcDirs("test")
    }
    resources {
        srcDirs("testresources")
    }
}}
于 2021-08-21T15:28:56.923 回答