Ant:如何创建不可变的Fileset?

时间:2013-01-18 21:28:34

标签: java ant

如何在Ant中创建动态文件列表,然后保存此列表以供以后在构建过程中使用?我所想的是像一个不可变的FilesetFilelist不起作用,因为它不接受通配符。

换句话说,我想创建一个基于include / exludes通配符的文件列表,这些通配符一旦创建就不会改变。也就是说,即使稍后添加了更多通过包含/排除规则的文件,我也希望保留初始的Fileset结果(特别是在构建过程的后期删除)。这可能吗?

1 个答案:

答案 0 :(得分:0)

嗯,这就是我想出来的。使用pathconvert将文件集存储到属性。然后在构建中稍后迭代文件,随意执行任何操作。就我而言,删除它们。

<macrodef name="storeBuildState">
    <sequential>
        <fileset dir="${build.dir}" id="current.fileset">
            <include name="**/*.jar" />
        </fileset>

        <pathconvert pathsep="," property="current.fileset.prop" refid="current.fileset"/>
    </sequential>
</macrodef> 



<macrodef name="deleteStoredBuildState">
    <sequential>
        <for list="${current.fileset.prop}" param="file">
            <sequential>
                <delete file="@{file}" verbose="true" />
            </sequential>
        </for>
    </sequential>
</macrodef>