【发布时间】:2019-07-05 18:19:45
【问题描述】:
如果给定的 ANT build.xml 文件中存在该目标,我想有条件地调用 Jenkins 中的特定 ANT 目标。我尝试使用条件步骤,对 build.xml 文件的内容使用正则表达式匹配。
所以我试图用 ANT 脚本文件 build.xml 检测 ANT 目标 publish-all 的存在,它存在,调用它。
我正在使用表达式:^.*publish-all.*$
带有标签:${FILE,path="build.xml"}
但是我收到以下错误:
2019.06.28 15:49:19 Exception caught evaluating condition: [org.jenkinsci.plugins.tokenmacro.MacroEvaluationException: Unrecognized macro 'basedir' in '<?xml version="1.0" encoding="UTF-8"?>
2019.06.28 15:49:19 <project name="My Project" basedir="." default="publish-local">
2019.06.28 15:49:19
2019.06.28 15:49:19 <property file="${basedir}/build.properties"/>
接下来是包含发布所有目标的 build.xml 文件的其余内容。
它似乎试图实际解析 build.xml 文件中的令牌,并在 ANT 属性 ${basedir} 上绊倒,而不是仅仅将其视为纯文本来执行正则表达式正如我所料,模式匹配。 有没有办法让它工作,或者完全有其他方法?
【问题讨论】: