我有一个以逗号分隔的目录列表:
foo,bar,baz,qux
我想将其转换为包含(类似)以下内容的Ant路径:
${basedir}/build/foo/classes
${basedir}/build/bar/classes
${basedir}/build/baz/classes
${basedir}/build/qux/classes
似乎应该有一种方法可以用<pathconvert>
来做到这一点,但对我来说这并不明显。建议?
答案 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}" />