2013-04-01 2 views
2

Я бы хотел, чтобы моя задача Ant завершилась с ошибкой, если переменная, которую она использует, не определена. Например. В настоящее времяНеудачная задача, если переменная undefined

<mkdir dir="${some.dir}"/>

всегда успешно, если some.dir определен, он создает каталог под значением переменного, если не создает каталог с именем буквально ${some.dir}.

Есть ли способ и как переключаться между текущим снисходительным и более строгим режимом разрешения переменных в Ant? Я запускаю это в Eclipse.

ответ

2
<fail unless="some.dir"/> 

<mkdir dir="${some.dir}"/> 

или

<fail> 
    <condition> 
     <not> 
      <isset property="some.dir"/> 
     </not> 
    </condition> 
</fail> 

<mkdir dir="${some.dir}"/> 
+2

, но я бы явно объявить, что для каждого требуемого вар. есть ли способ установить муравей в строгом режиме, чтобы сбой, если какой-либо используемый var не установлен? – amphibient

+0

@amphibient Извините, я не знаю, есть ли такой переключатель. И я не думаю, что есть. «Свойства» в Ant фактически обрабатываются в «Map» в анализируемом «проекте». Для того, как Ant анализирует xml в «Project», «Target» и «Task», я не думаю, что он реализовал эту функцию, чтобы переместить все '$ {}' s в xml и посмотреть каждый из них в «Карта». Хотя большинство свойств в файле сборки Ant объявлены, все еще есть некоторые, которые генерируются некоторыми задачами во время прогона. Это также затрудняет проверку всех свойств заранее. – coolcfan

+0

На самом деле вам нужно только проверить 'isset' на свойства, созданные во время прогона. Для заявленных вы должны обращаться к доступности вручную (и Eclipse может немного помочь своей статической проверке). – coolcfan