У меня есть три модуля:
Там являются интеграционными тестами во всех этих трех модулях. bmodule
является базой - он содержит BaseClass
, который я хочу использовать в интеграционных тестах в amodule
и cmodule
Пример моего проекта на github: https://github.com/ljql/test-deps
Я пытаюсь добавить зависимость к интеграционным тестам bmodule
в amodule
и cmodule
. Файл build.gradle
выглядит одинаково в модулях amodule
и cmodule
sourceSets {
intTest {
java {
srcDir 'src/test-integration/java'
}
resources {
srcDir 'src/test-integration/resources'
}
compileClasspath += rootProject.project('bmodule').sourceSets.intTest.output
runtimeClasspath += rootProject.project('bmodule').sourceSets.intTest.output
}
}
configurations {
intTestCompile {
extendsFrom compile
}
intTestRuntime {
extendsFrom runtime
}
}
dependencies {
intTestCompile project(path: ':bmodule', configuration: 'intTestCompile')
}
Но когда я пытаюсь собрать amodule
, у меня появляется ошибка:
Build file '/test-deps/amodule/build.gradle' line: 10
A problem occurred evaluating project ':amodule'.
> Could not get unknown property 'intTest' for SourceSet container of type org.gradle.api.internal.tasks.DefaultSourceSetContainer.
Сборка cmodule
, которая является копией amodule
, успешно завершена.
Единственное отличие между amodule
и cmodule
заключается в их именах. amodule
предшествует bmodule
и cmodule
, за которыми следует bmodule
Как я могу указать последовательность зависимостей разрешения gradle в моем случае? Я хочу, чтобы gradle узнал сначала о bmodule
, а затем о amodule
и cmodule