我有一个逗号分隔的目录列表:
foo,bar,baz,qux
我想将其转换为Ant路径,其中包含(类似于)以下内容:
${basedir}/build/foo/classes
${basedir}/build/bar/classes
${basedir}/build/baz/classes
${basedir}/build/qux/classes
似乎应该有一种方法可以用<pathconvert>
做到这一点,但我不清楚它会是什么。建议?
您可以使用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}" />