一、概述
move是ant内置任务,用于将文件移动到新的文件或者目录,或者将一组文件移动到新的目录。默认情况下,如果目标文件存在会被覆盖。当overwrite关闭时,只有当前文件比目标文件更新或者目标文件不存在时才会移动文件。资源集合可以用来选择一组要移动的文件。只支持基于文件系统的资源集合,包括fileset、filelist和path。而ant17之前只支持fileset。如果要使用资源集合,就必须设置todir属性。ant1.6.3起,file属性可以用来移动或重命名整个目录。如果tofile是已有文件,或者有与todir中同名的目录,操作会失败。
二、属性
file:要移动的文件或目录。
preservelastmodified:是否将移动文件的最后修改时间设置为源文件的最后修改时间,默认为false。
tofile:要移动到的文件。
todir:要移动到的目录。
overwrite:即使目标文件比源文件更新也会覆盖目标文件,默认为false。
force:从Ant1.8.2起,即使目标文件是只读的也会覆盖文件,默认为fale。
filtering:在进行移动时是否进行过滤。具体可查看filter。
flatten:是否忽略源目录的目录结构,如果为true,所有文件拷贝到todir属性指定的目录中。使用flattenmapper可以达到相同的效果,默认为false。
includeEmptyDirs:是否拷贝fileset中的空目录。默认为true。
failonerror:如果为false,当文件不存在或者指向一个目录嵌套的fileset不存在,或者移动发生异常时,会记录一个警告信息,但不会停止构建,默认为true。
quiet:ant1.8.3起,如果failonerror属性设置为false,当文件不存在或者指向一个目录嵌套的fileset不存在,或者拷贝发生异常时,如果quiet为true不会记录警告信息。默认为false。
verbose:是否记录正在移动的文件,默认为false。
encoding:从Ant1.5起,设置拷贝文件的编码,默认为JVM编码格式。
outputencoding:从Ant1.6起,设置写文件时的编码,如果设置encoding属性,默认与encoding属性相同,否则与JVM编码格式相同。
enablemultiplemappings:从Ant1.6起,是否处理所有源路径映射,如果为true,处理所有映射,如果为false,则只处理第一个文件或目录。这个属性只有在存在mapper子元素时才有效。默认为false。
granularity:因为不是每个文件系统都支持将修改时间精确到毫秒,所以从Ant1.6.2起,可以设置修改时间允许的时间误差。默认是0毫秒,DOS系统是2秒。
performGCOnFailedDelete:ant1.8.3起,如果ant删除文件或目录失败,会重新尝试一次。如果此属性设置为true,会在重试之前执行垃圾回收。设置为true,可以解决windows上的一些问题和NFS共享目录树。默认为true。
三、简单示例
<project>
<move file="buildtmp.xml" todir="./dest"/>
<move file="dest/buildtmp.xml" tofile="./buildtmp1.xml"/>
</project>