Как добавить новый набор с gradle kotlin-dsl

Я хочу добавить набор источников 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 {

    }
}

Может ли кто-нибудь помочь здесь

Ответ 1

Вы должны попробовать следующее:

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

Надеюсь, что вам нужно!

Ответ 2

Ответ @s1m0nw1 верен, чтобы добавить новый набор. Но чтобы просто добавить новую папку-источник в существующий набор источников, это можно использовать:

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

Ответ 3

Я хотел добавить исходный набор с именем "интеграция тестов" и исходный каталог src/test-integration/kotlin. Я смог сделать это, объединив два ранее существовавших ответа:

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

Ответ 4

Я работал на Gradle 4.10.2:

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

Ответ 5

Я работал на 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.