是否有办法根据文件内容从ant文件集中排除文件?
我们确实有测试服务器,其中代码文件与CMS生成的文件混合在一起。通常,这些文件被放置在不同的文件夹中,但是存在一个风险,即真正的代码文件位于生成代码的中间。
区分生成文件的唯一方法是打开文件并查看其内容。如果文件包含关键字,则应将其排除。
有谁知道用Ant执行此操作的方法吗?
根据Preet Sangha提供的答案,我应该使用过滤器链。但是,我在这里少了一个步骤。
假设我加载了一个要执行的排除的文本文件:
<loadfile property="exclusions" srcFile="exclusions.txt" />
但是我不知道如何将它集成到我当前的复制任务中:
<copy todir="${test.dir}">
<fileset dir="${src.dir}">
</fileset>
</copy>
我试图添加以下排除到文件集,但它不做任何事情:
<exclude name="${exclusions}"/>
看看not
和contains
选择器
not
选择器包含一个非常准确的示例,您正在尝试做什么。
<copy todir="${test.dir}">
<fileset dir="${src.dir}">
<not>
<contains text="your-keyword-here"/>
</not>
</fileset>
</copy>
还有containsregexp
选择器,如果您的排除标准更复杂,可能会有用。
如果需要的话,你可以使用更多的选择器来优化你的选择。
我不知道,但阅读文档....
- 您可以使用过滤器链构建文件列表,并将其放入文件集的excludefiles吗?
或
- 也许可以创建一个带有过滤器链的文件集,使用过滤器读取器和lincontainsregexp