3

这应该很简单,但我找不到办法。我需要使用 Ant 将目录子目录中的任何 zip 文件提取到同一子目录中。这些文件作为带有通配符的文件集传递给 ant 任务,例如 * / .zip。

例如,ant 脚本可能必须处理包含 file.xml 的文件 a/b/c/file.zip,所以我想使用解压缩任务将文件解压缩到 a/b/c/file.xml 但是事先不知道目录结构是什么,即它可以是 a/b/c/file.zip 或 t/u/v/w/x/y/z/file.zip。

解压缩任务需要“dest”目录,但在脚本运行之前我不知道完整的 dest 目录是什么。我也考虑了映射器,但据我所知,这仅适用于提取的文件,我无法将 zip 文件位置引用为映射的一部分。

任何帮助将不胜感激。

谢谢,史蒂夫

4

1 回答 1

2

您应该能够使用 ant-contrib 包中的“for”任务(通过文件集)和循环主体中的标准“dirname”任务来执行此操作。您还需要使用 ant-contrib "var" 任务来取消设置由 "dirname" 设置的属性,否则下一次循环迭代将不会获得新值。

http://ant-contrib.sourceforge.net/

于 2011-02-15T18:02:44.990 回答