我们正在开发一个依赖于一些 Java 库的 Android 项目。出于测试目的,我们希望能够使用包含不同 jar 的存根变体。如何用 gradle 做到这一点?
我一直在尝试一些有味道的东西,但现在只建造了“味道”,而不是正常的建造......
使用像 Google Guice 这样的轻量级 DI 容器可能比尝试使用构建系统执行此操作更好。
https://code.google.com/p/google-guice/
您可以定义一个测试模块和一个生产模块,将项目分别绑定到测试和生产类。
如果你真的想用 gradle 来做,我想不出一个很好的方法来做到这一点。一种方法是定义一个新配置(称为 testAndroid),并从中排除所有生产 jar,并用测试 jar 替换它们。然后你仍然可以使用java插件来构建它。您可以定义一个新的归档文件,该归档文件将在运行 uploadArchives 时发布测试 jar。这是一个突出的例子:
configurations{
testAndroid extendsFrom compile
testAndroid.exclude(group: 'my.company.production')
}
dependencies{
compile group: 'my.company.production', name: 'prod-jar', version: '1.0'
testAndroid group: 'my.company.test', name: 'test-jar', version: '1.0'
}
task testJar(type: Jar){
//build the jar
}
artifacts{
archives testJar
}