【问题标题】:How to make a property in Ant as mutable如何将 Ant 中的属性设置为可变的
【发布时间】:2012-01-09 14:13:38
【问题描述】:

我正在使用 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>

我的属性文件夹的输出值存在吗?即使在删除目录后仍然保持不变,即两次都没有

我知道 ant 属性是不可变的,一旦设置无法更改,我们也可以使用该解决方案的替代方案

<antcall>

任务并调用主要目标。

有没有办法像上述场景一样使该目标内的属性可变,我正在寻找解决此问题的其他可能性,对于此类问题,更好的编程实践是什么。

【问题讨论】:

    标签: ant


    【解决方案1】:

    正如您所说,属性是不可变的。唯一的其他选择是使用var task from ant-contrib.

    引用文档:一般来说,不鼓励使用这个任务,如果可能的话应该使用标准的 Ant 属性。 话虽如此,在现实生活中我使用这个很多。

    这也说明了很多;-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 2015-01-11
      • 2017-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多