从Ant filterset中排除图像或其他二进制文件

时间:2014-09-01 12:45:20

标签: ant filter

如何从filtersets中排除图像和其他二进制文件?过滤器操作会在复制操作后破坏图像。我想它可能会破坏MP3或视频等其他二进制文件。

这是复制任务:

<target name="copyCore" description="Copy core files and folders">
    <copy todir="${deploy.dir}" includeEmptyDirs="no">
        <fileset dir="${src.dir}">
            <patternset refid="core.files" />
        </fileset>
        <filterset refid="myFilterSet"></filterset>
    </copy>
</target>

这是filterset:

<filterset id="myFilterSet">
    <filter token="author" value="${author}" />
    <filter token="title" value="${title}" />
    <filter token="module" value="${module}" />
    <filter token="lang" value="${lang}" />
    <filter token="buildDate" value="${build.date}" />
    <filter token="buildTime" value="${build.time}" />
</filterset>

有没有办法根据过滤器中的文件类型排除文件?

1 个答案:

答案 0 :(得分:1)

patternsetexclude二进制文件类型中按文件扩展名。

<exclude name="**/*.mp3"/>
<exclude name="**/*.mp4"/>

和/或,include只需要文件扩展名所需的文本文件类型。

<include name="**/*.txt"/>
<include name="**/*.py"/>

专门回答您的问题,过滤器本身没有办法按类型或名称模式包含或排除文件。

Filterset旨在过滤文本文件。 Ant手册页说:

  

注意:在操作中使用filterset时,文件为   在文本模式下处理并逐行应用过滤器。这个   意味着复制操作通常会破坏二进制文件。   在应用过滤器时,您应该确保文件集是   过滤的都是文本文件。

您需要在 之前排除二进制文件。它们会命中过滤网。