productFlavors在单个项目中的使用,其他已经有很多,找度娘一抓一大把,这里就不说了。这里咱们要说的是,存在项目依赖library项目的情况下productFlavors的使用。、
此处例子中,moduleA依赖了module library
首先,打开library的build gradle,添加如下内容
publishNonDefault true
productFlavors {
dev{
。。。
}
uat{
。。。
}
}
publishNonDefault true这句话必须加,作用是:Lib编译时,不使用默认的选项,也就是可以指定productFlavors中的选项来编译。
在productFlavors中添加渠道和自己要做的处理。
然后,打开module A的build gradle,
这里也是需要添加productFlavors的
productFlavors{
dev{
}
uat{
}
}
在最外层添加
configurations {
devCompile
uatCompile
}
之前引入library module的地方
compile project(':library')
修改为
devCompile project(path: ":library", configuration: 'devDebug')
uatCompile project(path: ":library", configuration: 'uatDebug')
这里devCompile是从configuration中来的,后续的configuration是根据library里边productFlavors中的渠道名字来的。
以上。