Android Gradle,定义属性集合
我正在使用Gradle脚本,以便自动部署三个Android环境。 其思想是定义一组属性,这些属性将用于保存每个环境中的所有数据。 范例 然后,对于每个操作复制代码,编辑文件。。。我只需要迭代每个环境 基本上,我的问题是我无法找到创建此集合的方法 有人能解释一下持有一组房产的最佳方式吗Android Gradle,定义属性集合,android,gradle,collections,Android,Gradle,Collections,我正在使用Gradle脚本,以便自动部署三个Android环境。 其思想是定义一组属性,这些属性将用于保存每个环境中的所有数据。 范例 然后,对于每个操作复制代码,编辑文件。。。我只需要迭代每个环境 基本上,我的问题是我无法找到创建此集合的方法 有人能解释一下持有一组房产的最佳方式吗 I've already tried with: project.ext.dev= { envName = "live" buildFolder = "releaseLive" excludeFile
I've already tried with:
project.ext.dev= {
envName = "live"
buildFolder = "releaseLive"
excludeFiles= ['**/..' ]
}
project.ext.qa = {
envName = "live"
buildFolder = "releaseLive"
excludeFiles= ['**/..' ]
}
project.ext.live = {...}
如何创建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'];
}
所以,要使用某些环境中的值,您需要更改文件名。您可以创建一个文件名数组,并对其进行迭代。我不完全确定您想做什么,但听起来您想使用映射。记住Gradle脚本只是groovy 比如说:
project.ext.dev = [
envName:"DEV",
buildFolder: "releaseLive",
]
project.ext.qa = [
envName:"QA",
buildFolder: "releaseLive",
]
task printProps << {
println project.dev.envName
println project.qa.envName
}
project.ext.dev=[
名称:“DEV”,
buildFolder:“releaseLive”,
]
project.ext.qa=[
名称:“QA”,
buildFolder:“releaseLive”,
]
任务打印道具这可能也是一个好主意。我一直在尝试使用一个类classEnvironment{String-type;String-folderBuild;String[]notinclude;}
和一个列表来保存所有环境list-environmentList=new-arrarylist()代码>我想知道哪一个更合适。如果你想在类中保留这些值,你应该初始化它们并手动添加每个值。如果您需要更多的env值,您将需要更改您的类签名,并再次手动添加该值。对于我来说,最好是单独保存在一个文件中,因为在更改值的情况下,您应该做更少的操作,您是对的。由于初始化,类解决方案毫无意义,我非常喜欢您的解决方案将配置保留在不同的文件中。谢谢。这是我的主意,所以我的错误是用{而不是[。谢谢。
project.ext.dev = [
envName:"DEV",
buildFolder: "releaseLive",
]
project.ext.qa = [
envName:"QA",
buildFolder: "releaseLive",
]
task printProps << {
println project.dev.envName
println project.qa.envName
}