目录之外“res
”我想删除名称显示在目录"platforms/${patern.dir}/res"
中的所有文件,其中pattern.dir
是参数{{1}指定的逗号分隔列表的成员我想把它组织成一个循环,这样就可以在没有目标修改的情况下更改名称模式的目录数。
这是应该做的任务:
pattern.dirs
当我运行任务时,我收到消息
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<target name="-clean-irrelevant" if="pattern.dirs" >
<for list="${pattern.dirs}" param="pattern.dir">
<delete verbose="true">
<fileset dir="res" includes="**/*" >
<present present="srconly"
targetdir="platforms/${pattern.dir}/res"/>
</fileset>
</delete>
</for>
</target>
尝试了foreach,也是一个独立删除任务的蚂蚁 - 没有运气。
有没有办法实现这项任务?
答案 0 :(得分:0)
您需要在sequential
循环之后放置一个for
元素,该元素应该包含每次迭代要运行的任务。
要访问列表参数pattern.dir
,您需要使用@{}
代替${}
。
<target name="-clean-irrelevant" if="pattern.dirs" >
<for list="${pattern.dirs}" param="pattern.dir">
<sequential>
<delete verbose="true">
<fileset dir="res" includes="**/*" >
<present present="srconly"
targetdir="platforms/@{pattern.dir}/res"/>
</fileset>
</delete>
</sequential>
</for>
</target>