2014-01-23 1 views
1

Можно условно выполнить объект Ant, указав пункт if или unless. Насколько я вижу, этот пункт принимает только одно свойство. Как проверить два свойства?Как проверить два свойства в условии if задачи Ant?

Это пример:

<project default="test"> 
    <property name="a" value="true"/> 
    <property name="b" value="true"/> 
    <target name="test-a" if="a"> 
    <echo>a</echo> 
    </target> 
    <target name="test-b" if="b"> 
    <echo>b</echo> 
    </target> 
    <target name="test-ab" if="a,b"> 
    <echo>a and b</echo> 
    </target> 
    <target name="test" depends="test-a,test-b,test-ab"/> 
</project> 

Если я запускаю его, test-ab цель не генерирует никакого вывода:

 
$ ant -f target-if.xml 
Buildfile: target-if.xml 

test-a: 
    [echo] a 

test-b: 
    [echo] b 

test-ab: 

test: 

BUILD SUCCESSFUL 
Total time: 0 seconds 

Как указать и выражение для двух свойств?

ответ

2

К сожалению, нет. From the ant Targets manual:

Только одно имя свойства может быть указано в условии if/except. Если вы хотите проверить несколько условий, вы можете использовать цель зависимого от для вычисления результата для проверки:

<target name="myTarget" depends="myTarget.check" if="myTarget.run"> 
    <echo>Files foo.txt and bar.txt are present.</echo> 
</target> 

<target name="myTarget.check"> 
    <condition property="myTarget.run"> 
     <and> 
      <available file="foo.txt"/> 
      <available file="bar.txt"/> 
     </and> 
    </condition> 
</target> 
1

Это мой пример с использованием условия элемента:

<project default="test"> 
    <property name="a" value="true"/> 
    <property name="b" value="true"/> 
    <target name="test-a" if="a"> 
    <echo>a</echo> 
    </target> 
    <target name="test-b" if="b"> 
    <echo>b</echo> 
    </target> 
    <condition property="a-and-b"> 
    <and> 
     <equals arg1="${a}" arg2="true"/> 
     <equals arg1="${b}" arg2="true"/> 
    </and> 
    </condition> 
    <target name="test-ab" if="a-and-b"> 
    <echo>a and b</echo> 
    </target> 
    <target name="test" depends="test-a,test-b,test-ab"/> 
</project> 
Смежные вопросы