Ant根据文件的内容排除文件

时间:2011-09-09 11:05:38

标签: ant

有没有办法根据文件内容从ant文件集中排除文件?

我们有测试服务器,其中代码文件与CMS生成的文件混合在一起。 通常,文件放在不同的文件夹中,但实际代码文件存在生成代码中间的风险。

区分生成文件的唯一方法是打开文件并查看其内容。如果文件包含关键字,则应将其排除。

有没有人知道用Ant执行此操作的方法?

根据Preet Sangha的回答,我应该使用过滤链。但是,我在这里错过了一步。

假设我加载了要执行的排除项的文本文件:

<loadfile property="exclusions" srcFile="exclusions.txt" />

但我不知道如何将其整合到我当前的复制任务中:

<copy todir="${test.dir}">
  <fileset dir="${src.dir}">

  </fileset>
</copy>

我尝试将以下排除添加到文件集中,但它没有做任何事情:

<exclude name="${exclusions}"/>

我确定我错过了一个简单的步骤......

2 个答案:

答案 0 :(得分:1)

查看notcontains选择器。

not选择器包含了一个非常准确的例子。

<copy todir="${test.dir}">
  <fileset dir="${src.dir}">
    <not>
      <contains text="your-keyword-here"/>
    </not>
  </fileset>
</copy>

如果您的排除标准更复杂,还有containsregexp selector可能会有用。

如果需要,可以使用load more selectors来优化您的选择。

答案 1 :(得分:0)

我不知道蚂蚁,但阅读文档......

  • 您可以使用filterchain构建文件列表,并将其放入文件集的 excludefiles 吗?