jenkins 管道中存在的文件无法与 ${variant} 一起使用

fileExists in jenkins pipeline not working with ${variant}

在詹金斯管道中

变体从作业配置中读取为

variant = job_config['variant']

变体可以是 'abc' 或 'xyz',具体取决于在作业配置中输入的内容。

if(fileExists('tmp/build/${variant}/bin/Test.xml'))
{
echo "Test.xml exists" 
}
else
{
echo "Test.xml doesnot exists" 
}

让我们假设变体在作业配置中作为 'abc' 给出。 尽管'tmp/build/abc/bin/Test.xml'真实存在,

在 jenkins 构建期间,条件检查文件存在 'tmp/build/${variant}/bin/Test.xml 被读取即,${variant} 在条件检查期间未被 abc 替换。

有人可以帮助您缓解这种情况吗?谢谢!

您可能需要在路径中使用双引号而不是单引号: if(fileExists("tmp/build/${variant}/bin/Test.xml")) 以便变量被其值替换。

Jenkins 管道是用 groovy 编写的,因此您可以在 this question and in the official groovy documentation.

中的 groovy 中找到有关单引号和双引号之间区别的更多信息