我正在使用Android / Gradle依赖系统来解决此问题
现在,我需要在build.gradle文件中执行以下操作:
...
dependencies {
...
testCompile files('libs/otherMock.jar')
debugCompile files('libs/other.jar')
releaseCompile files('libs/other.jar')
...
}
...
不幸的是,那时Gradle似乎在我的测试版本中同时包含了other.jar和otherMock.jar。
我确实了解,对于大多数构建(包括我以前的所有构建),这是完全理想的行为。
但是对于我的特殊情况,这是一个问题。
所以我需要(例如)这样的东西:
...
dependencies {
if(<I failed to realize which condition to write here to learn it is going to be a test>) {
testCompile ...
} else {
debugCompile ...
releaseCompile ...
}
}
或更佳:
...
dependencies {
testCompile ...
debugCompile ... {
exclude <when test build - what to write here?>
}
}
...
我尽力实现了如何配置Gradle来执行我在这里需要的操作,但是我失败了:(
另一方面,我不敢相信Gradle不够灵活地实现这一目标。我希望对我来说太难了:) ...
请不要给我建议:
答案 0 :(得分:0)
您可以使用Gradle configurations和Gradle test定义自定义配置,并将其从测试任务类路径中排除:
configurations {
other.extendsFrom compile //latter is parent for both debugCompile and releaseCompile
}
test {
classpath -= configurations.other
}
dependencies {
testCompile files('libs/otherMock.jar')
other files('libs/other.jar')
}