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

qod*_*nja 1 ant dependencies build

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

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

Mad*_*sen 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>
Run Code Online (Sandbox Code Playgroud)
  • "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>
Run Code Online (Sandbox Code Playgroud)