在Ant构建脚本中,如何检查文件或目录是否存在作为任务的依赖项?

时间:2011-02-08 17:07:39

标签: ant build dependencies

开始编写我的第一个构建脚本。我没有完全依赖的东西。当你的编译说java并且你需要目标文件来创建一个jar时,这种意义是有意义的。但是,如果您只是想验证是否存在任何不属于编译任务的文件或目录呢?

我已经能够使用可用,但我不知道如何将其结果用作任务的依赖

2 个答案:

答案 0 :(得分:5)

有这样的事情:

<project name="foo-bar" basedir=".">
    <target name="bar" depends="foo" unless="isAvailable">
     <echo message="file is not available" />
    </target>

    <target name="foo">
      <available file="${basedir}/path/to/file.java" property="isAvailable"/>
    </target>
</project>
  • “bar”目标取决于“foo”目标。
  • 执行“foo”时,会检查文件是否存在。
  • 如果存在,则设置isAvailable属性。
  • 如果未设置isAvailable,“bar”目标将仅执行并回显消息。

您还可以将<available>置于构建的“根级别”(目标之外,作为<project>的直接子级,并且在任何目标之前进行评估运行:

<project name="foo" basedir=".">

    <available file="${basedir}/path/to/file.java" property="isAvailable"/>

     <target name="bar" unless="isAvailable">
     <echo message="file is not available" />
    </target>
</project>

答案 1 :(得分:1)

如果您想测试文件是否存在,请查看available