我如何使用Ant创建包含某个根目录中所有文件和嵌套目录的zip,但从zip中排除顶级目录本身。
例如,说我有这个文件结构:
/foo
splat.js
/bar
wheee.css
Run Code Online (Sandbox Code Playgroud)
我希望zip在/ bar内包含splat和wheee,但我不希望所有这些都包含在'foo'目录内。换句话说,解压到/按喇叭,这应该不是创建一个foo的目录; splat和bar应该以/ honk结尾。
我目前正在使用此工具(删除了多余的细节):
<zip destfile="${zipfile}" basedir="" includes="${distRoot}/**/*.*" />
Run Code Online (Sandbox Code Playgroud)
哪种文件集选择可以替代“包含”规范来实现此目的?
它不是动态的,但使用 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>
Run Code Online (Sandbox Code Playgroud)
这可能会动态地满足您的需求。它应该拉入 foo 目录中的所有内容,然后将其压缩。这只是几个额外的步骤。
<mkdir dir="DirToBeZipped"/>
<copy todir="DirToBeZipped">
<fileset dir="foo" includes="*"/>
</copy>
<zip destfile="YourZipName.zip" basedir="DirToBeZipped"/>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11300 次 |
最近记录: |