从属性中以逗号分隔的列表创建文件集,而不会丢失顺序

时间:2011-09-21 06:59:04

标签: ant fileset

我使用指定的属性来创建文件集:

<property name="cases" value="B.java,A.java,C.java" />
<fileset id="casesToBeRunning" dir="${src}" includes="${cases}" />

当CasesToBeRunning创建时,我列出了它的内容:

<echo>Cases to be running: ${toString:casesToBeRunning}</echo>

它显示了我不期望的A.java,B.java,C.java。

我不想要Ant autosort,我需要我定义的属性的原始排序顺序来有序地执行这些情况。

任何人都知道如何处理这个问题?

1 个答案:

答案 0 :(得分:3)

Ant文件集不保留顺序 - 正如您所见。相关的filelist类型确实遵循排序,因此您可以使用:

<filelist id="casesToBeRunning" dir="${src}" files="${cases}" />

订单是否得到遵守将取决于您计划用于处理文件的任务。接受文件集的大多数核心Ant任务都会接受文件列表,因此您应该可以使用它们。对于非核心任务,它可能不起作用。

(请注意,在Ant 1.8.0之前,某些任务在遍历文件列表时不遵守该顺序 - 例如copy