从gradle的.tar.gz存档中获取tarball
我有一些从gradle的.tar.gz存档中获取tarball,gradle,gzip,tar,gunzip,Gradle,Gzip,Tar,Gunzip,我有一些.tar.gz-档案,只想将Tarball解包以创建.tar-文件的sha256校验和散列。(这样做的原因是,存档将在稍后取消并重新打包,因为我们正在生成修补程序文件。) 现在这似乎是一项简单的任务,但我被卡住了。以下是Gradle的例子: 获取解包的tarTree(带有Gradle复制任务和tarTree(resources.gzip('model.tar.gz'))(来自文档:) 解压缩文件(使用zipTree),这不适用于gzip文件 这两种方法都不起作用,因为我需要创建.tar-
.tar.gz
-档案,只想将Tarball解包以创建.tar
-文件的sha256校验和散列。(这样做的原因是,存档将在稍后取消并重新打包,因为我们正在生成修补程序文件。)
现在这似乎是一项简单的任务,但我被卡住了。以下是Gradle的例子:
tarTree
(带有Gradle复制任务和tarTree(resources.gzip('model.tar.gz'))
(来自文档:)zipTree
),这不适用于gzip文件.tar
-文件本身的校验和。不幸的是,我不能使用命令行
或gunzip
,因为任务应该在Windows和Linux上运行
我现在能想到的唯一解决方案是将tar.gz
解包到一个文件树并重新打包到一个tar文件,但我甚至不确定校验和是否相同
真的没有办法直接做到这一点吗?最后,我在一位同事的帮助下让它工作起来 使用,它返回一个
可读资源
,我们可以将结果输入流
复制到一个.tar
-文件中,其中包含:
我们还需要添加apachecommons(“commons-io:commons-io:2.6”
)作为依赖项
file("test.tar").withOutputStream { outputFile ->
IOUtils.copy(resources.gzip(file("test.tgz")).read(), outputFile)
}