如果文件不同,我有以下ant脚本将文件复制到DIR A:
<copy todir="<DIR A>" verbose="true" preservelastmodified="true">
<fileset file="< file A">
<different targetdir="<DIR A>" ignorefiletimes="true"/>
</fileset>
</copy>
我需要做的是“检查”副本是否发生以便做“别的”。
答案 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>