我正在尝试自动化我的epub图书工作流程,我有一个问题与epub规范的一个愚蠢的部分。第一个文件必须被命名为'mimetype',该压缩条目的内容必须被解压缩。
Java中的ZipOutputStream
类有必要的API来完成它(ZipOutputStream#setLevel
),但我没有看到通过Zip
任务访问它的任何方法。我是不是很不幸,我必须手动执行压缩流,或者是否有一些方法可以使用gradle本地访问压缩配置文件?
看了一下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压缩库来处理zip归档。