Ant内置任务之replace

一、概述

        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>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值