Проверка ссылки с помощью муравья - PullRequest
5 голосов
/ 20 мая 2011

Есть ли способ проверить в ant, что где-то определена ссылка с определенным refid?

Например, мне нужно проверить, что my.ref определен перед его использованием следующим образом.

<pathconvert property="my.prop" refid="my.ref">
...
</pathconvert>

Мне нужно это сделать, поскольку в моем проекте есть несколько сценариев сборки, которые не находятся под моим контролем (на самом деле, мне иногда не разрешается просматривать их содержимое).

Эти сценарии должны определятьэта ссылка.К сожалению, я не могу сосчитать, что эта ссылка определена по какой-то причине.

Итак, мне нужно проверить ее и выполнить изящную обработку ошибок или какие-то конкретные действия.сделать это?

Обновление:

Я нашел правильный способ сделать это сам.Это можно сделать с помощью элемента isreference задачи condition.

Например:

<condition property="my.ref.defined">
    <isreference refid="my.ref"/>
</condition>
<fail unless="my.ref.defined" message="Reference my.ref not defined."/>

Ответы [ 2 ]

3 голосов
/ 20 мая 2011

Вы можете установить свойство на основе значения ссылки , а затем протестировать это свойство.Например:

<property name="my.prop" value="${toString:my.ref}" />
0 голосов
/ 23 мая 2011

Чтобы убедиться, что он работает со всеми типами ссылок, лучше использовать $ {ant.refid: reference}, см. Ant Manual , хотя в большинстве случаев он работает с $ {toString: reference}.

С Муравьиный плагин Flaka это однострочный =

 <project name="demo" xmlns:fl="antlib:it.haefelinger.flaka">
  <fl:fail message="Houston we have a problem" test="not has.property['ant.refid:my.ref']"/>

Flaka также имеет структуры управления, например, когда, если, пока, для, выберите, не переключить ..

 <fl:when test="not has.property['ant.refid:my.ref']">
  ...
 </fl:when>

см. Руководство Flaka

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...