如何在密钥对样式中使用 ant 回显文件名列表?
how to echo a list of file names using ant in a key pair style?
我有一个 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>
我有一个 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>