Исключение при использовании 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:

http://ant.apache.org/manual/Tasks/taskdef.html

http://ant-contrib.sourceforge.net/

Именно то, что вы говорите в сообщении об ошибке...

За типом элемента "равно" должны следовать либо спецификации атрибутов, ">" или "/>"

Вы хотите это:

<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>
Другие вопросы по тегам