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