我正在使用Gradle脚本,以便自动部署三个Android环境。 这个想法是定义一组属性,这些属性将用于保存来自每个环境的所有数据。 实施例
[DEV, QA & Live] {
buildFolder ="..."
envName = "..."
excludeFiles= "**/..." }
然后,对于每个操作复制代码,编辑文件......我只需要迭代每个环境。
基本上,我的问题是我无法找到创建此集合的方法。
有人可以解释持有一组房产的最佳方式吗?
I've already tried with:
project.ext.dev= {
envName = "live"
buildFolder = "releaseLive"
excludeFiles= ['**/..' ]
}
project.ext.qa = {
envName = "live"
buildFolder = "releaseLive"
excludeFiles= ['**/..' ]
}
project.ext.live = {...}
答案 0 :(得分:4)
我不完全确定你想做什么,但听起来你想要使用地图。记住,Gradle脚本只是很常见。
所以,比如:
project.ext.dev = [
envName:"DEV",
buildFolder: "releaseLive",
]
project.ext.qa = [
envName:"QA",
buildFolder: "releaseLive",
]
task printProps << {
println project.dev.envName
println project.qa.envName
}
答案 1 :(得分:2)
如何创建具有相同名称的3个单独文件(dev.properties,qa.properties和live.properties)。并在其中插入您的属性
envName = "live"
buildFolder = "releaseLive"
excludeFiles= ['**/..' ]
之后,您可以在build.gradle配置中使用此属性。像这样:
apply plugin: 'android'
android {...}
File propsFile = new File("dev.properties");
if (propsFile.exists()) {
Properties properties = new Properties();
properties.load(new FileInputStream(propsFile));
//after loading properties you can get values from them
println properties['envName'];
println properties['buildFolder'];
println properties['excludeFiles'];
}
因此,要从某些环境中使用值,您需要更改文件名。您可以创建一个文件名数组,并迭代它们。