другой вариант вместо тега <bool> - PullRequest
2 голосов
/ 29 марта 2011
<if>
   <bool>
      <isgreaterthan arg1="${abc}" arg2="${xyz}"/>
   </bool>
</if>

когда я запускаю код, он показывает ошибку if doesn't support the nested "bool" element. есть ли какая-либо другая опция в месте bool, которая поддерживается, если

Ответы [ 4 ]

5 голосов
/ 12 сентября 2012

Пример работает в antcontrib-1.0b2, но не в последней версии antcontrib-1.0b3

Обнаружено это после нажатия аналогичной проблемы после обновления

1 голос
/ 30 марта 2011

Ant Flaka - это новый плагин Ant, который предоставляет инновационный язык выражений, который делает многие части сценариев устаревшими.Помимо того, что Flaka предоставляет условные и повторяющиеся структуры управления, например, когда, если, в то время как, для, выберите, переключить .. Ваш оператор if с Flaka будет выглядеть как =

<project xmlns:fl="antlib:it.haefelinger.flaka">

  <property name="digitA" value="42"/>
  <property name="digitB" value="23"/>
  <property name="wordA"  value="abcd"/>
  <property name="wordB"  value="efgh"/>

  <!-- compare of digits -->
  <fl:when test=" '${digitA}' > '${digitB}' ">
    <echo>${digitA} gt ${digitB}</echo>
  </fl:when>

  <!-- example with string compare in switch -->
  <fl:switch value="${wordA}">
    <cmp gt="${wordB}">
      <echo>${wordA} gt ${wordB}</echo>
    </cmp>
    <cmp lt="${wordB}">
    <echo>${wordA} lt ${wordB}</echo>
    </cmp>
  </fl:switch>

</project>

, пожалуйста, см. Всеобъемлющее руководство Flaka для более подробной информации!

1 голос
/ 29 марта 2011

Похоже, вы пытаетесь использовать задачу Antelope if , поскольку она (в отличие от ant-contrib if) поддерживает вложенный элемент bool,Но сообщение об ошибке указывает на то, что задача не была определена правильно.

Убедитесь, что у вас есть jar антилопы и подходящий файл taskdef в вашем файле сборки.Я использую это:

<taskdef resource="ise/antelope/tasks/antlib.xml"
         classpath="path/to/AntelopeTasks_3.5.1.jar" />

Для получения подробной информации о том, что поддерживает задача, см. Документацию, связанную с выше.

0 голосов
/ 25 августа 2015

Вы можете использовать тег 'bool' внутри 'if', если вы используете taskdef для "if", используя classname = "ise.antelope.tasks.IfTask"

Например:

<target name="compare">  <taskdef name="if" classname="ise.antelope.tasks.IfTask"/>  <var name="abc" value="2" />  <var name="xyz" value="1" />  <if>  <bool>  <isgreaterthan arg1="${abc}" arg2="${xyz}"/>  </bool>  <echo message="${abc} is greater than ${xyz}" />  </if>  </target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...