可以通过指定if
或unless
子句有条件地执行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
如何为两个属性指定和表达式?
答案 0 :(得分:2)
不幸的是,没有。 From the ant Targets manual:
在if / unless子句中只能指定一个属性名。如果你 想要检查多个条件,您可以使用dependend目标 计算检查结果:
<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 :(得分:2)
这是我使用条件元素的例子:
<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>