如果属性“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>

10-02 03:17
查看更多