2013-03-04 4 views
0

Я пытаюсь сравнить значение свойств с переменных со строкой следующегоисключения при использовании если Постулаты в скрипте

<if> 
    <equals "${mat.projectName}"="seal"> 
<then> 

Когда это сделано так, я получаю следующее сообщение.

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

Я использую затмение рамки, чтобы сделать это.

ответ

2

прочитать инструкцию первый:

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

ясно, из руководства мы знаем equals:

arg1 Первое значение для тестирования арг2 Второго значения для тестирования

Таким образом, это должно быть

<if> 
    <equals arg1="${mat.projectName}" arg2="seal" /> 
<then> 
    ... 

Я рекомендую сначала ознакомиться с руководствами по XML, а затем с руководством Ant.


Обновление:

<if> задача не предусмотрено Ant; он предоставляется Ant-Contrib. Так вам нужно <taskdef>.

Например, я муравей-contrib.jar поместить в Lib каталога моего проекта ($ {BASEDIR}/Lib), так что я могу написать следующее:

<taskdef resource="net/sf/antcontrib/antcontrib.properties"> 
    <classpath> 
     <pathelement location="lib/ant-contrib.jar"/> 
    </classpath> 
</taskdef> 

Для больше, вы можете проверить taskdef «s страницы вручную, а также веб-страницу АНТ-вно в:

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

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

+0

Да, я узнал его. Спасибо. Но даже после изменений я получаю исключение: BUILD FAILED F: \ Projects \ Seal \ build.xml: 308: Проблема: не удалось создать задачу или тип, если я должен использовать любую банку? Причина: Имя не определено. Действие: Проверьте орфографию. Действие: Убедитесь, что объявлены какие-либо пользовательские задачи/типы. Действие: Проверьте, что были сделаны какие-либо . – user1969650

+0

@ user1969650 См. Мой обновленный ответ. – coolcfan

+0

Кстати, для задачи taskdef вы можете легко использовать Google, чтобы получить ответ. Такие вопросы, скорее всего, получат downvotes. Итак, всегда сначала Google. – coolcfan

0

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

типа

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

Вы хотите:

<if> 
    <equals arg1="${mat.projectName}" arg2="seal"/> 
    <then> 
     <yadda, yadda, yadda/> 
    </then> 
</if> 

Это XML, поэтому вам нужны параметры со значениями. Взгляните на условие equals на этой странице. Он принимает два параметра.

Обратите внимание на формат <if>. Условие заканчивается на />. <then> является субинститутом <if>, а , если пункт является подразделением пункта <then>. Обратите внимание, что вы в основном отступали дважды.

Если вы делаете не равно условию, она будет выглядеть следующим образом:

<if> 
    <not> 
     <equals arg1="${mat.projectName}" arg2="seal"/> 
    </not> 
    <then> 
     <yadda, yadda, yadda/> 
    </then> 
</if> 
Смежные вопросы