一、概述
fixcrlf是Ant内置任务,用于将文本文件调整为本地约定。要调整的文件集可以通过includes、includesfile、excludes、excludesfile和defaultexcludes属性调整。 通过includes和includesfile提供的模式指定必须要包含的文件,通过excludes、excludesfile提供的模式指定必须要排除的文件,defaultexcludes可以指定默认排除的文件列表。fixcrlf形成了一个隐式的文件集,并且支持fileset的大多数属性,以及嵌套include、exclude和patternset元素。只有当输出文件是新文件或者与存在的文件不同时才会写入,以此防止基于未更改的文件进行虚假的重构。ant1.7起,可以在filterchain中直接嵌套fixcrlf。
二、属性
srcDir:要调整的文件目录。
file:ant1.7起,要调整的单个文件。
destDir:存放调整后文件的目录。默认为srcDir(或替换原始文件)。
includes:逗号或空格分隔的必须要包含的文件模式列表。
includesfile:文件名。指定文件的每一行都会做为一个includes模式。
excludes:逗号或空格分隔的必须排除的文件模式列表。
excludesfile:文件名。指定文件的每一行都会做为一个excludes模式。
defaultexcludes:是否使用默认排除列表,默认为true。
encoding:文件编码。默认为JVM编码。
outputencoding:ant1.7起,输出文件编码。默认与encoding属性相同。
preservelastmodified:ant1.6.3起,是否保留源文件的最后修改时间,默认为false。
以上属性在fixcrlf做为过滤器使用时可以使用。
eol:如果处理行结束符(行结束符为CR、LF或者CRLF)。可选值为:asis(保持不变)、cr(全部转为CR)、lf(全部转为LF)、crlf(全部转为CRLF)、mac(全部转为CR)、unix(全部转为LF)、dos(全部转为CRLF)。默认与任务运行所在平台相关,对于UNIX平台(包括Mac OS X),默认为lf,基于DOS系统(包括windows),默认为crlf,除了OS X以外的mac环境,默认为cr。
javafiles:指明文件集是否是一组java源文件,只与tab属性联合使用,当设置为true时,java字符串或者字符常量中的制表符永远不会修改,默认为no。
tab:如何处理制表符,可选值为:add(将空格序列转为一个或多个制表符)、asis(保持不变)、remove(将制表符转为空格)。默认为asis。
tablength:制表符长度,有效值为2-80之间,默认为8。
eof:如何处理文件结束符。可选值为:add(确保文件末尾有一个文件结束符)、asis(保持不变)、remove(移除所有文件结束符)。默认与任务运行所在平台相关,UNIX平台默认为remove,基于DOS系统(包括windows)默认为asis。
fixlast:ant1.6.1起,是否在处理的文件最后一行添加缺失的文件结束符。如果设置为true,会在源文件基础上新增一行用于添加文件结束符,此时如果eof设置为remove或者asis,不会在生成的文件中添加文件结束符,但是会比源文件多出一行。
三、简单示例
<fixcrlf file="demo.txt" destdir="./result" tab="add" eof="add" fixlast="false"/>