如何使Ant中的属性可变
我使用ant condition任务检查文件和目录的存在性,下面是我的代码如何使Ant中的属性可变,ant,Ant,我使用ant condition任务检查文件和目录的存在性,下面是我的代码 <project name="makeitmutable" basedir="." default="main"> <target name="main"> <condition property="folderexists?" value="Yeah" else="Nope"> <and> <available fil
<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>
删除“folderexistance”文件夹属性folderexists?=${folderexists?}之前
删除“folderexistance”文件夹属性folderexists?=${folderexists?}
我的属性folderexists的输出值?即使在删除目录后仍然保持不变,即…,Nope两次
我知道一旦设置不能更改,ant属性是不可变的,而且这个解决方案的另一个替代方案是我们可以使用
<antcall>
任务并调用主目标
在上面的场景中,是否有一种方法可以使属性在该目标内可变,我正在寻找其他的可能性来解决这个问题,对于这种类型的问题,更好的编程实践是什么。正如您所说,属性是不可变的。唯一的其他选择是使用 引用文档:一般来说,不鼓励使用此任务,如果可能的话,应该使用标准Ant属性。话虽如此,但在现实生活中我经常使用此属性 这也说明了很多;-)