您的位置:首页 > 其它

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任务