如何使用Ant创建包含某些根目录中的所有文件和嵌套目录的zip,但将顶级目录本身排除在zip之外。
例如,假设我有这样的文件结构:
/foo
splat.js
/bar
wheee.css
我希望zip包含splat和wheee在/bar中,但我不希望所有这些都包含在"foo"目录中。换句话说,将其解压缩到/honk应该而不是创建一个foo目录;splat和bar应该在/honk的词根处结束。
我目前正在使用这个(无关细节删除):
<zip destfile="${zipfile}" basedir="" includes="${distRoot}/**/*.*" />
选择哪种类型的文件集可以取代"includes"规范来实现这一点?
它不是动态的,但使用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"/>