覆盖属性文件中的一个值

时间:2013-03-14 10:30:01

标签: ant replace

我有一个属性文件:

custom.properties

此属性文件的内容为:

id=sf2j2345kkklljhlaasfsdfafsf543
name=SOME_NAME

id的值是一个长随机字符串。

我想创建一个 Ant 脚本,以替换/覆盖 id的值到另一个,我尝试使用Ant {{1}语法:

<replace>

我运行ant change-id,属性文件的内容变为:

<target name="change-id">
      <replace file="custom.properties" token="id" value="aaa" />
</target>

这是关键字“aaa=sf2j2345kkklljhlaasfsdfafsf543 name=SOME_NAME ”被取代而不是它的价值。但是我需要将值替换为“ aaa ”,如何在Ant中实现这一点?

请不要建议我id设置为token的随机值,因为该值是随机生成并放在那里的。我只想用Ant脚本覆盖“id”的随机值,如何实现呢?

1 个答案:

答案 0 :(得分:1)

您可以使用replaceregexp任务执行此操作。尝试像在这个例子中那样做

conf.ini(utf-8)

aaa=sf2j2345kkklljhlaasfsdfafsf543
name=SOME_NAME

的build.xml

<project name="regexp.replace.test" default="test">

    <target name="test">
        <replaceregexp file="conf.ini" match="^aaa=.*" replace="aaa=newId" encoding="UTF-8" />
    </target>

</project>

我不确切地知道这个正则表达式是否正确,但这是你可以做到的。