场景:由于在buildTypes下配置manifestPlaceholders比较乱 不够优雅
1. 首先在项目中创建.properties格式文件 不同目录代表环境即buildType
注意:文件内容为 key=value 换行符分格,value不用加双引号
2. Gradle中添加文件读取方法
private static def manifestCfg(buildType) {
// 查找对应环境下的配置文件
File cfgFile = new File("buildcfg/fields/${buildType.name}", "manifest.properties")
InputStream inputStream = new FileInputStream(cfgFile)
Properties properties = new Properties()
// 通过流转化成properties
properties.load(inputStream)
// 这里可以打印下properties 实际是个Map<String,Object>
// System.out.println(properties)
// 将环境的manifestPlaceholders赋值
buildType.manifestPlaceholders = properties
}
buildType 代表 buildTypes下的每一项,可点进去查看BuildType.class
3. buildTypes同级下 添加buildTypes的遍历
project.android.buildTypes.all { buildType ->
manifestCfg(buildType)
}
4. 完成