如何在密钥对样式中使用ant回显文件名列表?

时间:2019-06-21 15:44:48

标签: ant

我有一个FileSet,并且想在PropertyFile中回显文件名。像这样:

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

我已经看到一些解决方案,其中文件名可以在单个Property中并置,然后在一个步骤中回显。但是由于我使用的是PropertyFile,所以我需要使用Entry进行书写。

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

1 个答案:

答案 0 :(得分:0)

仅使用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>