ant check是复制文件成功

时间:2013-11-21 12:07:44

标签: ant

如果文件不同,我有以下ant脚本将文件复制到DIR A:

<copy todir="<DIR A>" verbose="true" preservelastmodified="true">
   <fileset file="< file A">
      <different targetdir="<DIR A>" ignorefiletimes="true"/>
   </fileset>
</copy>

我需要做的是“检查”副本是否发生以便做“别的”。

1 个答案:

答案 0 :(得分:1)

在复制之前运行测试以查看文件是否不同。然后在复制后运行测试以查看文件是否相同。

<condition>任务的<filesmatch> condition检测两个文件是否具有相同的内容。

以下是一些代码:

<project name="ant-copy-changed-file-test" default="run">

    <target name="run" depends="-copy,-post-copy"/>

    <target name="-copy">
        <condition property="copy-should-happen">
            <not>
                <filesmatch file1="${file_A}" file2="${dir_A}/file_A"/>
            </not>
        </condition>

        <copy todir="${dir_A}" verbose="true" preservelastmodified="true">
           <fileset file="${file_A}">
              <different targetdir="${dir_A}" ignorefiletimes="true"/>
           </fileset>
        </copy>

        <condition property="copy-happened">
            <and>
                <isset property="copy-should-happen"/>
                <filesmatch file1="${file_A}" file2="${dir_A}/file_A"/>
            </and>
        </condition>
    </target>

    <target name="-post-copy" if="copy-happened">
        <echo>Copy happened!</echo>
    </target>
</project>