中更详细的答案
目前我在ant脚本中有以下代码:
<target name="-pre-compile" if="${log.disabled}">
<antcall target="remove-logs"/>
</target>
这是不言自明的:如果log.disable=true
在属性文件中,那么我的remove-logs目标将被调用。现在我需要对if/else做一些细微的修改。伪代码:
<target name="-pre-compile">
if("${log.disabled}")
<antcall target="remove-logs"/>
else if("${log.disabled.level}" != "")
<antcall target="remove-logs-levels"/>
</target>
我怎么用ant写呢?
另外,请注意所有这些if/them -contrib对我不起作用:
<target name="test-xxx">
<echo level="info">testing</echo>
<if>
<equals arg1="${log.disabled}" arg2="true" />
<then>
<echo message="true" />
</then>
<else>
<echo message="false" />
</else>
</if>
</target>
让我得到这个输出:
custom_rules.xml:73: if不支持嵌套的"equals"元素。
p。再一次,我结束了编写javascript而不是浪费时间在ant本身。真是个蹩脚的替代品…
Ant提供条件。坦率地说,使用ant-contrib更容易。它提供一个if任务。查看ant-contrib - if/then/else task