Исключение при использовании if statment в скрипте ant
Я пытаюсь сравнить значение переменной свойств со строкой следующим образом
<if>
<equals "${mat.projectName}"="seal">
<then>
Когда это сделано, я получаю следующее сообщение.
За типом элемента "равно" должны следовать либо спецификации атрибутов,">" или "/>"
Я использую Eclipse Framework для этого.
2 ответа
Сначала прочтите руководство:
http://ant.apache.org/manual/Tasks/conditions.html
ясно из руководства, которое мы знаем для equals
:
arg1 Первое значение для проверки arg2 Второе значение для проверки
Так и должно быть
<if>
<equals arg1="${mat.projectName}" arg2="seal" />
<then>
...
Я рекомендую вам сначала прочитать руководства по XML, а затем руководство Ant.
Обновить:
<if>
задача не предоставлена Ant; это обеспечивается Ant-Contrib. Так вам нужно <taskdef>
,
Например, я поместил ant-contrib.jar в каталог lib моего проекта (${basedir}/lib), поэтому я могу написать следующее:
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="lib/ant-contrib.jar"/>
</classpath>
</taskdef>
Более подробно вы можете проверить taskdef
Страница руководства, а также веб-страница Ant-contrib:
Именно то, что вы говорите в сообщении об ошибке...
За типом элемента "равно" должны следовать либо спецификации атрибутов, ">" или "/>"
Вы хотите это:
<if>
<equals arg1="${mat.projectName}" arg2="seal"/>
<then>
<yadda, yadda, yadda/>
</then>
</if>
Это XML, поэтому вам нужны параметры со значениями. Взгляните на условие равенства на этой странице. Требуется два параметра.
Обратите внимание на формат <if>
, Условие заканчивается />
, <then>
является дочерним объектом <if>
и условие if является дочерним объектом <then>
пункт. Обратите внимание, что вы в основном делаете отступ в два раза.
Если вы выполняете условие не равно, это будет выглядеть так:
<if>
<not>
<equals arg1="${mat.projectName}" arg2="seal"/>
</not>
<then>
<yadda, yadda, yadda/>
</then>
</if>