Ant:将以逗号分隔的相对路径列表转换为path

时间:2012-01-26 21:28:00

标签: ant

我有一个以逗号分隔的目录列表:

foo,bar,baz,qux

我想将其转换为包含(类似)以下内容的Ant路径:

${basedir}/build/foo/classes
${basedir}/build/bar/classes
${basedir}/build/baz/classes
${basedir}/build/qux/classes

似乎应该有一种方法可以用<pathconvert>来做到这一点,但对我来说这并不明显。建议?

1 个答案:

答案 0 :(得分:2)

您可以使用dirset来保存目录列表,然后将其提供给pathconvert。类似的东西:

<property name="dirs" value="foo,bar,baz,qux" />
<dirset id="dir_list" dir="${basedir}" includes="${dirs}" />

<pathconvert refid="dir_list" property="dirs_prop">
    <regexpmapper from="(${basedir})/(.*)" to="\1/build/\2/classes" />
</pathconvert>

然后,属性${dirs_prop}将保持您想要的路径......或几乎。 dirset的问题是没有定义目录的顺序。要保留原始列表的顺序,请使用filelist代替dirlist

<filelist id="dir_list" dir="${basedir}" files="${dirs}" />