需要Ant条件示例

coo*_*kul 3 ant ant-contrib

有人可以用Ant条件属性的例子解释我用"if","and","not"和"istrue"代码吗?

我是Ant的新手,需要帮助.

基本上我需要使用FTP下载文件.我有代码下载它.但是在下载之前我需要检查的条件很少.

  1. 下载前检查Downloadstatusvariable值(通常是其真值或假值)
  2. 检查文件是否已下载或在路径中可用
  3. 如果两个条件都失败则执行FTP下载代码.

提前致谢.

cho*_*ver 12

蚂蚁的contrib被广泛使用的库和的if/else /为/的foreach任务不仅会使其更易于编写复杂的Ant脚本,它们会让你的ant脚本更具可读性.

但是,既然你坚持:)

我已经在过去处理这个问题的方法是设置任务的如果属性x设置,只有执行,并进行任务A取决于检查的条件,并设置属性X,如果他们是真正的一些任务B.例如:

<target name="get-ftp-file" depends="check-need-ftp-file" if="ftp.call.required">
  <ftp ... />
</target>

<target name="check-need-ftp-file">
  <condition property="ftp.call.required">
    <and>
      <not>
        <!-- Checks if Downloadstatusvariable variable is true -->
        <istrue value="${Downloadstatusvariable}"/>
      </not>
      <not>
        <!-- Checks if file is present in filesystem -->
        <available file="${my.file}"/>
      </not>
    </and>
  </condition>
</target>
Run Code Online (Sandbox Code Playgroud)

编辑:

coolgokul,<and><not>任务是标准的逻辑运算符.<available>如果文件存在于本地计算机上,则上例中的条件计算结果为true.但是我们只想在本地机器上不存在该文件时才下载该文件,因此我们将其包装在<not>任务中.类似的${Downloadstatusvariable}检查 - 我们想确保它不是真的,所以我们使用<istrue>然后将其包装起来<not>.

最后,我们要确保变量不为真并且文件不存在,因此我们将这两个条件包含在内<and>.翻译成英文,我们问"下载状态变量是不是真的,下载的文件是不可用的?"

建议您阅读有关条件运算符的更多信息@ http://ant.apache.org/manual/Tasks/conditions.html

希望有所帮助.