java - 在 Ant 中有条件地删除

标签 java ant conditional-statements

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

关于java - 在 Ant 中有条件地删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2754664/

相关文章:

java - Java新手,已经出错了

java - 不用jdk就可以登录java web start吗?

java - Android:RelativeLayout 中不能存在循环依赖

c# - 基于索引对二进制文件进行排序

java - Java的SASS实现?

java - 在gradle中将类路径添加到ant任务的最佳方法

android - 找不到 libtoolize,即使我在 OS X Yosemite 中安装了 libtool

ruby - 在 Ruby 中编写 "matching balanced parenthesis"程序的更好方法

javascript - 适用于移动设备的条件 Javascript

不同浏览器上的 Css 行为