【发布时间】:2012-02-02 18:38:39
【问题描述】:
如何使用 Ant 在某个根目录中创建包含所有文件和嵌套目录的 zip,但从 zip 中排除顶级目录本身。
例如,假设我有这个文件结构:
/foo
splat.js
/bar
wheee.css
我希望 zip 在 /bar 中包含 splat 和 wheee,但我不希望所有内容都包含在 'foo' 目录中。换句话说,将其解压缩到 /honk 应该创建一个 foo 目录; splat 和 bar 应该在 /honk 的根目录下结束。
我目前正在使用这个(无关的细节已删除):
<zip destfile="${zipfile}" basedir="" includes="${distRoot}/**/*.*" />
什么样的文件集选择可以替代“包含”规范来实现这一点?
【问题讨论】:
-
嵌套的
<fileset dir="foo" includes="**/*" />代替包含标签有帮助吗?或basedir="foo" includes="**/*" -
+1 获取 mihi 的评论,另见:ant.apache.org/manual/Tasks/zip.html -- 它描述了如何在 zip 任务中使用文件集作为嵌套元素。
-
谢谢大家,这正是我所需要的,我有时间会更彻底地检查:
<zip destfile="${zipfile}" basedir="${distRoot}" includes="**/*" />。 @mihi,如果你回答这个问题,我会把它标记为正确的。 -
与一个不错的解决方案相关:stackoverflow.com/q/22759314/435605