Ant内置任务之replace
2018-02-12 23:54
369 查看
一、概述
replace是ant内置任务,用于将选择的文件中出现的指定字符串替换为另一个字符串。如果要替换跨行的文本,必须嵌套replacetoken元素。当与存在的文件不同时,才会写入输出文件,以此防止此任务基于未变更的文件进行伪重建。replace形成了一个隐式文件集,支持fileset的大多数属性以及嵌套include、exclude、patternset元素。ant1.8起,replace支持嵌套任何基于文件系统的资源集合。二、属性
file:要进行替换的文件。dir:替换多个文件时使用的基本目录。
encoding:进行替换的文件编码,默认为JVM编码。
token:要替换掉的字符串。
value:替换成的字符串,如果不设置,默认为空字符串“”。
summary:是否生成替换操作的摘要,详细说明处理了多少字符串和文件,默认不生成摘要。
propertyFile:描述嵌套replacefilter元素指定的属性的属性文件,当replacefilter元素使用property属性时必须设置。
replacefilterfile:属性文件,每一个属性都视为一个replacefilter,属性名是token,属性值是value。
includes:逗号或空格分隔的必须包含的文件模式列表。
includesfile:文件名。指定文件的每一行都会做为一个includes模式。
excludes:逗号或空格分隔的必须排除的文件模式列表。
excludesfile:文件名。指定文件的每一行都会做为一个excludes模式。
defaultexcludes:是否使用默认排除列表,默认为true。
preserveLastModified:ant1.8起,是否保留时间戳,即使文件被修改,默认为false。
failOnNoReplacements:ant1.8起,如果没有做任何事是否构建失败,默认为false。
replace还支持以下嵌套元素:
replacetoken/replacevalue:如果要替换的文本或替换文本跨行,可以使用这两个嵌套元素来分别指定。支持以下属性:
expandProperties:ant1.8起,是否扩展嵌套文本中的属性,默认为false。
replacefilter:使用replacefilter元素,可以从属性文件中提取替换值,属性文件的名字通过replace任务的propertyFile属性设置。支持以下属性:
token:要替换掉的字符串。
value:替换成的字符串。
property:用其值作为替换值的属性名。property与value不能同时指定。ant1.8起,token、value属性可以作为replacefilter的嵌套元素使用。如果value和property都没有设置,就使用replace的value属性值或者replacevalue元素的值。如果这些都没有设置,那么就用空字符串进行替换。
三、简单示例
<project> <replace file="test.txt" value="defaultvalue" propertyfile="test.properties"> <replacefilter token="testnotsetvalue"/> <replacefilter token="testsetvalue" value="value1"/> <replacefilter token="testvaluefromproperty" property="key"/> <replacefilter> <replacetoken expandProperties="true">replacemulti${line.separator}line</replacetoken> <replacevalue expandProperties="true">replacetovaluemulti${line.separator}line</replacevalue> </replacefilter> </replace> </project>
相关文章推荐
- Ant内置任务之scp
- Ant内置任务之ant
- Ant内置任务之basename
- Ant内置任务之length
- Ant内置任务之delete
- Ant内置任务之fixcrlf
- Ant内置任务之sync
- Ant内置任务之scriptdef
- Ant内置任务之sshsession
- Ant内置任务之gzip/bzip2
- Ant内置任务之uptodate
- Ant内置任务之diagnostics
- Ant内置任务之import
- Ant内置任务之dirname
- Ant内置任务之filter
- Ant内置任务之tstamp
- Ant内置任务之truncate
- Ant内置任务之sequential
- Ant内置任务之tar
- Ant内置任务之subant