Я хотел бы условно вызвать конкретную цель ANT в Jenkins, если эта цель существует в данном файле ANT build.xml. Я попытался использовать условный шаг, используя регулярное выражение для содержимого файла build.xml.
![enter image description here](https://i.stack.imgur.com/aBCEy.png)
Поэтому я пытаюсь обнаружить присутствие цели ANT publish-all с помощью файла сценария ANT build.xml, и если он существует, вызовите его.
Я использую выражение: ^. * 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} , а не просто обрабатывает его как обычный текст для выполнения шаблона регулярного выражения матч против, как я и ожидал.
Есть ли способ заставить это работать или другой метод вообще?