用于比较目录的ant脚本

时间:2013-01-17 16:25:38

标签: ant build

我有一个具有以下结构的javascript项目:

root - 
  /docs
  /dist
  /source
  /resources
  /plugins

代码位于source目录中,执行ant脚本以在dist目录中生成压缩文件。所有文件都在源代码管理中。

我想在运行ant脚本之前运行目录diff,以确保sourcedist目录中的文件列表相同。如果没有,请停止执行并告诉用户在运行构建之前签入所需的文件。

我是ant的新手,无法找到任何文档列出两个目录之间的文件列表中的差异。感谢任何投入。

1 个答案:

答案 0 :(得分:2)

您可以尝试以下方法。在失败之前打印要检入的文件列表:

<project name="demo" default="build">

    <target name="check">
        <apply executable="echo" failonerror="false" resultproperty="files.found">
            <arg line="missing file:"/>
            <srcfile/>
            <fileset id="srcfiles" dir="source" includes="*.txt">
                <present present="srconly" targetdir="dist"/>
            </fileset>
        </apply>

        <fail message="Files need to be checked in" if="files.found"/>
    </target>

    <target name="build" depends="check">
        ..
        ..
        ..
    </target>

</project>

注意:

  • 在Linux上测试过。可能无法在Windows上运行。