如何为Ant删除任务而不是文件集输入文本文件

时间:2014-07-18 17:14:35

标签: ant

是否可以输入包含需要使用Ant删除任务删除的文件列表的文本文件?

我知道有一个选项可以在删除任务中提供文件集,但由于我有100个文件需要使用ant delete删除。

例如

<target name="removeJarsFromList">
    <delete includeEmptyDirs="true" failonerror="false">
        <fileset dir="${my_base_dir}">
          <include name="/a/file1.jar/**"/>
          <include name="/b/file2.jar/**"/>
          <include name="/somedir/file3.jar/**"/>
          <include name="/c/file4.jar/**"/>
        </fileset>
    </delete>
</target>

而是可以选择在文本文件中删除需要删除的文件并将文本文件作为输入。

myDeleteFileList.txt将包含类似这样的内容

/a/file1.jar
/b/file2.jar
/somedir/file3.jar
/c/file4.jar

并将此文件作为文件集的输入?

1 个答案:

答案 0 :(得分:1)

includesfile任务有一个<delete>属性。

includesfile: 文件的名称。该文件的每一行都被视为包含模式。所有文件都相对于 dir 中指定的目录。见HERE

<delete dir="${base.dir}" includesfile="abc.txt"/>

<强>的abc.txt:
每一行是包含模式,相对于dir;避免尾随/领先空格

**/fileA
/x/y/fileB
z/*.java

通常,dir任务中的<delete>属性用于删除整个目录,但这可能会起作用。 (我没试过这个,所以)拿一个备份你的目录或先在临时目录上试一试!