Gradle在Android进行编译依赖
最近做的游戏项目需要打各种的渠道包, 对于使用联通计费的渠道包来说, 不同渠道有不同的计费文件需要使用.
在Gradle的插件中有个功能是可以根据productFlavors或者buildType的参数, 自动生成一个compile命令
如:
productFlavors {
xiaomi{}
}
dependencies {
xiaomiCompile fileTree(dir: 'unicom_payfile/xiaomi, include: '*.jar')
}
意思就是对于xiaomi的这个flavor使用unicom_payfile/xiaomi下的jar计费文件进行编译
但是对于几十个渠道来说一个一个写显然不是个办法, 秉着程序员应该懒惰的原则, 看了看groovy的一些语言特性, 发现可以写成这个样子:
dependencies {
android.productFlavors.all {
favor ->
"${name}Compile"(fileTree(dir: "unicom_payfile/${name}", include: '*.jar'))
}
}