Мой проект использует Gradle с Kotlin DSL для сборки.Теперь я хочу добавить собственный набор исходных текстов, используемый для тестирования.Соответствующий код выглядит следующим образом:
java {
sourceSets.create("systemTest") {
java.srcDir("src/system-test/java")
resources.srcDir("src/system-test/resources")
}
}
Используя его, я получаю другой модуль в Intellij, который рассматривается как исходный модуль.Я также попробовал следующее, чтобы пометить его как тестовый модуль:
idea.module {
testSourceDirs.addAll(project.sourceSets.getByName("systemTest").java.srcDirs)
testSourceDirs.addAll(project.sourceSets.getByName("systemTest").resources.srcDirs)
}
Однако, если я затем делаю ./gradlew clean idea
и открываю проект с использованием сгенерированных файлов (обычно я импортирую свои проекты из Gradle),Папка system-test вообще не рассматривается как модуль источника.
Кто-нибудь имел опыт объявления пользовательского набора исходных кодов с помощью Kotlin DSL и пометки его как тестового модуля?
EDIT : Теперь я создал пример проекта Gradle с использованием Groovy, и там он без проблем работал с использованием следующего кода (который, я думаю, является просто отличной версией моих утверждений выше):
sourceSets {
systemTest {
java {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('src/system-test/java')
}
resources.srcDir file('src/system-test/resources')
}
}
idea {
module {
testSourceDirs += project.sourceSets.systemTest.java.srcDirs
testSourceDirs += project.sourceSets.systemTest.resources.srcDirs
}
}
Так что я тоженеправильное преобразование в Kotlin DSL или ошибка на стороне Intellij.