我有在 ant 构建脚本中创建 zip 文件的代码。
<target name="zip-dist" description="archiving artifacts">
<zip destfile="${artifacts}/${zipfile}.zip" update="false" basedir="${target.dist}" includes="*.xyz-*" />
</target>
当使用win zipright click -> Extract All...
提取文件时,没有警告,但是在提取时7-zip
显示"警告:标头错误">,但它成功。
我知道这对输出没有影响,因为它只是一个警告,因此建议用户忽略它或使用win-zip方法。
但相信我,不可能让他们理解,他们都在继续吃我的头。 有很多用户,我一遍又一遍地重复同样的事情。他们仍然希望它被修复。
我可以ant-zip
目标中使用任何属性,还是应该在ant build
中使用任何不同的压缩技术?
我已经搜索了多个在线资源,这是最后的希望! 请帮忙。
我遇到了同样的问题。
修复了仅添加一个属性以强制使用 Zip64 扩展的问题:
zip64Mode="always"
尝试并且也应该为您工作。
而不是常规的zip目标使用7-zip来创建zip。
<property name="7z.exe" value="C:/Program Files/7-Zip/7z.exe" />
<target name="zip-dist" description="archiving artifacts">
<exec executable="${7z.exe}">
<arg value="a" />
<arg value="-tzip" />
<arg value="${artifacts}/${zipfile}.zip" />
<arg value="${target.dist}/*.xyz-*" />
</exec>
</target>
由于 7-zip 包含有关标头的所有必要信息,因此不会发生警告。
当然,系统中必须提供 7-zip。