如何使用Ant创建包含某些根目录中所有文件和嵌套目录的zip,但是从zip中排除顶级目录本身。
例如,假设我有这样的文件结构:
/foo
splat.js
/bar
wheee.css
我希望zip包含splat和wheee inside / bar,但我不希望所有内容都包含在'foo'目录中。换句话说,将此解压缩为/ honk应该 而不是 创建一个foo目录; splat和bar应该以/ honk的根部结束。
我目前正在使用此功能(删除了无关的详细信息):
<zip destfile="${zipfile}" basedir="" includes="${distRoot}/**/*.*" />
什么样的文件集选择可以替换'包含'规范来实现这个目标?
答案 0 :(得分:1)
它不是动态的,但使用fullpath属性可以定义zip文件的路径结构。请参阅ant文档:http://ant.apache.org/manual/Types/zipfileset.html
<zip destfile="YourZipName.zip">
<zipfileset fullpath="splat.js" dir="foo" includes="splat.js"/>
<zipfileset fullpath="bar/wheee.css" dir="foo/bar" includes="wheee.css"/>
</zip>
这可能会让你想要动态。它应该拉入foo目录中的所有东西,然后拉上它。这只是一些额外的步骤。
<mkdir dir="DirToBeZipped"/>
<copy todir="DirToBeZipped">
<fileset dir="foo" includes="*"/>
</copy>
<zip destfile="YourZipName.zip" basedir="DirToBeZipped"/>