对于Ant大师:我如何同时或以相同的方式复制和连接?

时间:2011-07-28 23:24:18

标签: ant

在构建过程中,我将文件从一个目录复制到另一个目录,过滤掉一些不必要的文本,如下所示:

<target name="init-files">
  <copy todir="${resources}/clean" overwrite="true">
    <fileset dir = "${resources}/dirty" />
    <filterchain>
      <tokenfilter>
        <replacestring from="text_to_remove" to="" />
      </tokenfilter>
    </filterchain>
  </copy>
</target>

我想在每个要复制的文件的开头和结尾插入一行文本。我无法使用replacestring,因为我无法插入令牌 - 源文本文件是在外部生成的。

concat看起来像答案但是我发现如何将一组文件连接成一个文件(许多源具有单个目标)我没有看到如何将文本添加到每个文件中集合(具有多个目标的固定文本源)。

我很欣赏有关如何实现这一目标的任何想法。

谢谢!

1 个答案:

答案 0 :(得分:3)

可以使用您在tokenfilter中已有的replacestring过滤器链接replaceregex string filter

<tokenfilter>
    <replacestring from="text_to_remove" to="" />
    <filetokenizer/>
    <replaceregex pattern="^" replace="PREFIX TEXT${line.separator}" />
    <replaceregex pattern="$" replace="${line.separator}SUFFIX TEXT" />
</tokenfilter>

第一个匹配每个文件的开头,第二个匹配结束。