如何在没有文件所有者信息的情况下使用 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
命令可以轻松避免该消息。
我正在尝试通过 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
命令可以轻松避免该消息。