2011-11-08 30 views
0

我試圖自動化我的epub書籍工作流程,並且遇到了epub規範中一個愚蠢部分的問題。第一個文件必須命名爲「mimetype」,並且該zip文件的內容必須是未壓縮的。如何讓Gradle的Zip任務調整壓縮設置?

Java中的ZipOutputStream類具有所需的API來完成它(ZipOutputStream#setLevel),但我沒有看到任何方式通過Zip任務執行此操作。我是否運氣不好,是否必須手動執行zip流式傳輸,還是有一些本地使用gradle的方式來訪問壓縮配置文件?

回答

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檔案。