我有三个模块:
amodule
bmodule
cmodule
所有这三个模块中都有集成测试。
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
最佳答案
尝试将其放在amdoule
的build.gradle中
preBuild.dependsOn ":bmodule:build"