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

How to build a tar archive using gradle on Windows without file owner information?

我正在尝试通过 Windows[= 上的 gradle 从我的项目构建一个 tar 存档 29=].

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 是 tar 球内的一个目录。使用 --no-overwrite-dir 调用解包命令有效。

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

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

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