我有一个属性文件,我在Jenkins管道脚本中调用它来获取多个变量。
BuildCounter = n
BuildName1 = Name 1
BuildName2 = Name 2
...
Buildnamen = Name n
我用def props = readProperties file: Path
现在我想创建一个循环来打印我的所有BuildNames
for (i = 0; i < BuildJobCounterInt; i++){
tmp = 'BuildName' + i+1
println props.tmp
}
但当然这不起作用。最后一次println调用正在我的属性文件中搜索名为tmp
的变量。有办法执行此操作还是我完全错了?
编辑:
这是我的.properties文件:
BuildJobCounter = 1
BuildName1 = 'Win32'
BuildPath1 = '_Build/MBE3_Win32'
BuildName2 = 'empty'
BuildPath2 = 'empty'
TestJobCounter = '0'
TestName1 = 'empty'
TestPath1 = 'empty'
TestName2 = 'empty'
TestPath2 = 'empty'
在我的Jenkins管道中,我想有可能检查Build / TestJobs的大小并自动调用Jobs(每个BuildName和BuildPath是一个Freestyle作业)要调用所有这些Job,我想调用一个for中的变量环。因此,对于每个i
步骤,我都有名称/路径对。
答案 0 :(得分:1)
尝试以下方法:
更改自:
println props.tmp
要:
println props[tmp]
或
println props."$tmp"
编辑:基于OP评论
从:改变:
tmp = 'BuildName' + i+1
要:
def tmp = "BuildName${(i+1).toString()}"