For Loop从属性文件中调用多个变量

时间:2017-08-18 06:06:25

标签: jenkins groovy jenkins-pipeline

我有一个属性文件,我在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步骤,我都有名称/路径对。

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

更改自:

println props.tmp

要:

println props[tmp]

println props."$tmp"

编辑:基于OP评论

从:改变:

tmp = 'BuildName' + i+1

要:

def tmp = "BuildName${(i+1).toString()}"