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

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

最佳答案

好吧,这就是我的想法。使用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>

10-05 20:22