如何使用 Ant 以密钥对样式回显文件名列表



我有一个FileSet,想在PropertyFile中回显文件名。喜欢这个:

file.name.1=foo.txt
file.name.2=bar.pdf
file.name.3=bob.blah

我见过一些解决方案,其中文件名可以在单个Property中连接,然后在一个步骤中回显。但是由于我正在使用PropertyFile我需要使用 Entry 编写。

当然,我可以使用Echo并以模拟属性文件的方式打印每个文件名,但问题是相同的。如何制作计数器并打印所有名称?

仅使用 Ant 无法做到这一点。有一个旧的废弃项目Ant-Contrib,它正是我需要的。

<target name="print.names" >
    <taskdef resource="net/sf/antcontrib/antlib.xml"/>
    <var name="counter" value="0"></var>
    <for param="current.file">
        <fileset dir="path/to/dir"></fileset>
        <sequential>
            <var name="aux.name" unset="true"></var>
            <basename file="@{current.file}" property="aux.name"></basename>
            <math operand1="${counter}" operation="+" operand2="1" result="counter" datatype="int"></math>
            <echo file="path/to/output/file.txt" append="true" message="file.name.${counter}=${aux.name}${line.separator}"></echo>
        </sequential>
    </for>
</target>

最新更新