如何使用Ant在文件末尾附加一些文本?

Vij*_*bey 22 ant append

在我的项目的一个配置文件中,我需要附加一些文本.我正在寻找一些使用Ant来做到这一点的选项.

我找到了一个选项 - 找到一些东西并用新文本和旧值替换该文本.但它似乎并不乐观,好像将来某人更改原始文件时,构建将失败.

所以,我希望我的脚本在文件末尾添加文本.

我有什么选择可以满足这样的要求?

Mic*_*lat 43

使用echo任务:

<echo file="file.txt" append="true">Hello World</echo>
Run Code Online (Sandbox Code Playgroud)

编辑:如果你有HTML(或其他任意XML),你应该逃避它CDATA:

<echo file="file.txt" append="true">
<![CDATA[
  <h1>Hello World</h1>
]]>
</echo>
Run Code Online (Sandbox Code Playgroud)


mar*_*ton 6

另一种选择是使用过滤链.

例如,下面将添加文件input2.txtinput1.txt并把结果写入output.txt.当前操作系统的行分隔符(来自ant中可用的java属性)在输出文件中使用.在使用它之前output2.txt,我必须动态创建.

<copy file="input1.txt" tofile="output.txt" >
    <filterchain>
        <concatfilter append="input2.txt" />
        <tokenfilter delimoutput="${line.separator}" />
    </filterchain>
</copy>
Run Code Online (Sandbox Code Playgroud)


use*_*707 6

CONCAT任务看起来做的一样好.有关示例,请参见http://ant.apache.org/manual/Tasks/concat.html,但相关的是:

<concat destfile="README" append="true">Hello, World!</concat>
Run Code Online (Sandbox Code Playgroud)