如何让Gradle的Zip任务调整压缩设置?

时间:2011-11-08 15:43:41

标签: gradle

我正在尝试自动化我的epub书籍工作流程,并且我遇到了epub规范的一个愚蠢部分的问题。第一个文件必须命名为“mimetype”,并且该zip条目的内容必须是未压缩的。

Java中的ZipOutputStream类具有执行它所需的API(ZipOutputStream#setLevel),但我没有看到通过Zip任务获取此任何方法的方法。我运气不好,我是否必须手动进行zip流式传输,还是有一些方法可以使用gradle本地访问压缩配置文件?

1 个答案:

答案 0 :(得分:1)

简要介绍一下Gradle(里程碑-5)来源,发现它不太可能发生。

我发现ZipOutputStream的唯一引用位于org.gradle.api.internal.file.archive.ZipCopySpecVisitor的第63行,您会发现它正在执行此操作:

ZipEntry archiveEntry = new ZipEntry(...);
archiveEntry.setMethod(ZipEntry.DEFLATED);

ZipEntry.STORED可能就是您要找的地方,但不幸的是DEFLATED似乎是硬编码的。顺便说一下,Gradle似乎正在使用Apache commons compress库来处理zip存档。