如何在没有文件所有者信息的情况下在Windows上使用gradle构建tar存档?

时间:2018-07-03 07:08:56

标签: gradle tar

我正在尝试在我的项目中使用 Windows 上的gradle构建 tar存档

task buildTarball(dependsOn: filterResources, type: Tar) {
    from "${project.buildDir}/resources"
    destinationDir project.buildDir
    archiveName = project.ext.internetTarballName
    compression = Compression.GZIP
}

这很好用,除了在现有目录下的 unix计算机上解压缩存档时会出错:

tar: config: Cannot utime: Permission denied
tar: Exiting with failure status due to previous errors

config是压缩包中的目录。使用--no-overwrite-dir调用unpack命令即可。

Gradle使用我的 Windows用户名作为生成的存档中所有文件和目录的所有者。我怀疑这是错误的原因。如何使用gradle将所有者信息从tarball中删除?

1 个答案:

答案 0 :(得分:1)

根本问题不是gradle,而是目标环境。 config目录归root所有,禁止tar覆盖创建,修改和访问时间戳。

不过,上述问题中发布的消息不是错误。此消息后,Tar继续解压缩对象。通过将--no-overwrite-dir开关附加到tar -x命令可以轻松避免该消息。