ant迭代文件

时间:2009-03-18 14:42:50

标签: ant ant-contrib

我想迭代一个jar列表(未定义的数字)并将它们全部添加到jar文件中。 要添加它们,我打算使用这样的东西:

<jar id="files" jarfile="all.jar">
   <zipfileset src="first.jar" includes="**/*.java **/*.class"/>
   <zipfileset src="second.jar" includes="**/*.java **/*.class"/>
</jar>

但我如何迭代它们?我没有ant-contrib

谢谢!

2 个答案:

答案 0 :(得分:4)

如果您无法访问ant-contrib For task,则可能最终必须定义custom Task以执行您需要的操作...

如果您有ant1.6及以上,还可以尝试subant(请参阅New Ant 1.6 Features for Big Projects):

  

如果您使用<subant>的{​​{1}}属性,它的工作方式类似于genericantfile在包含任务的同一构建文件中调用目标。
  与<antcall>不同,<antcall>获取一个列表或一组目录,并将为设置项目基本目录的每个目录调用一次目标。

     

如果要在任意数量的目录中执行完全相同的操作,这非常有用。

答案 1 :(得分:4)

只需将zipgroupfileset与Ant Zip task

一起使用即可
<zip destfile="out.jar">
    <zipgroupfileset dir="lib" includes="*.jar"/>
</zip>

这将使所有包含的jar库内容变得扁平化。