如果属性“delete-compiled-dir”设置为true,我想删除目录。如果该属性为false,则不要执行它。现在我有
<target name="deleted-after-compilation" depends="compile,jar">
<condition property="${delete-compiled-dir}" value="true">
<delete dir="${compilation-dir}" />
</condition>
<echo> Deleting Compiled Directory Classes </echo>
</target>
我收到错误消息:
condition doesn't support the nested "delete" element.
最佳答案
您可以使用if
将条件添加到目标中(请参阅manual)。
仅当将属性compilation-dir
设置为(例如false
的任何值)时,才会执行目标。
<target name="deleted-after-compilation" depends="compile,jar"
if="${compilation-dir}">
<delete dir="${compilation-dir}" />
<echo> Deleting Compiled Directory Classes </echo>
</target>
要仅在将属性设置为
true
时执行它,您需要首先设置另一个属性,然后在if
中选中该属性。您可以将两个目标都添加为依赖项:<target name="set-delete-property">
<condition property="delete-compilation-dir">
<istrue value="${compilation-dir}"/>
</condition>
</target>
<target name="deleted-after-compilation"
depends="compile,jar" if="${compilation-dir}">
....
<target name="some-target"
depends="set-delete-property,deleted-after-compilation">
</target>