我创建了一个jenkinsfile,需要进入已经创建的目录。但是问题在于目录的名称可以是可变的,例如:dir ('RELEASE/abc/${abc-version}')
。 abc-version
作为字符串参数在管道中传递。
问题在于,在运行管道时,jenkins创建了一个名为“ ${abc-version}
”的目录,而不是将其作为参数传递。
到目前为止,我一直没有这样做。这有可能吗?我们可以在dir步骤中传递变量吗?
编辑:我尝试了%abc-version%,但仍然无法正常工作。而是使用%abc-version%创建目录,而不是将其作为变量。
此外,我的参数类似于:abc-version
。与这个问题有关吗?
答案 0 :(得分:5)
使用双引号
dir ("RELEASE/abc/${abc_version}")
groovy中的单引号是标准的Java字符串,而双引号是可模板化的字符串
例如
a = 10
b = "RELEASE/abc/${a}"
c = 'RELEASE/abc/${a}'
print(b)
print('\n')
print(c)
输出将为
RELEASE/abc/10
RELEASE/abc/${a}
您可以尝试here
答案 1 :(得分:2)
我们需要使用双引号来解析groovy脚本中的变量。
使用以下示例代码
def dirpath = "RELEASE/abc/${abc-version}"
dir(dirpath){
//logic
}