我正在使用ant条件任务来检查文件是否存在和目录是否存在,下面是我的代码
<project name="makeitmutable" basedir="." default="main">
<target name="main">
<condition property="folderexists?" value="Yeah" else="Nope">
<and>
<available file="folderexistance" type="dir"/>
<available file="a.zip" type="file"/>
</and>
</condition>
<echo>before deleting "folderexistance" folder property folderexists?=${folderexists?}</echo>
<delete dir="folderexistance"/>
<!--after delete-->
<condition property="folderexists?" value="Yeah" else="Nope">
<and>
<available file="folderexistance" type="dir"/>
<available file="a.zip" type="file"/>
</and>
</condition>
<!--how to make below line to print Nope ?-->
<echo>After deleting "folderexistance" folder property folderexists?=${folderexists?}</echo>
</target>
</project>
我的属性文件夹的输出值是否存在?即使删除了目录,也保持不变,即两次都没有
我知道蚂蚁的属性是不可变的,一旦集合不能改变,这个解决方案的另一个选择是我们可以使用
<antcall>
任务并调用主要目标。
有没有一种方法可以像上面的场景一样使属性在该目标内可变,我正在寻找其他解决方案,对于这类问题,有什么更好的编程实践。
正如您所说,属性是不可变的。唯一的其他选项是使用ant contrib的var
任务。
引用文档:通常,此任务的使用是DISCOURAGED,如果可能的话,应该使用标准的Ant属性话虽如此,在现实生活中我经常使用这个
这也说明了很多;-)