我有一些.tar.gz
归档文件,只想解压缩Tarball来创建.tar
-File的sha256-checksum哈希。 (这样做的原因是,归档文件将在以后解压缩并在我们生成补丁文件时重新打包。)
现在,这似乎是一件容易的事,但我陷入了困境。可以使用以下两种Gradle示例:
tarTree
(带有Gradle Copy-Task和tarTree(resources.gzip('model.tar.gz'))
(来自文档:working with files)zipTree
),不适用于压缩文件这两种方法都不起作用,因为我需要创建.tar
-文件本身的校验和。不幸的是,我不能使用commandLine
或gunzip
,因为这些任务应该同时在Windows和Linux上运行。
我现在能想到的唯一解决方案是将tar.gz
解压缩为fileTree并将其重新打包为tar文件,但是我什至不确定校验和是否相同。
真的没有办法直接做到这一点吗?
答案 0 :(得分:0)
最后我得到了同事的帮助。
使用resources.gzip()
(返回ReadableResource
),我们可以将生成的InputStream
复制到IOUtils.copy的.tar
文件中:
file("test.tar").withOutputStream { outputFile ->
IOUtils.copy(resources.gzip(file("test.tgz")).read(), outputFile)
}
我们还需要添加Apache commons("commons-io:commons-io:2.6"
)作为依赖项。