代码之家  ›  专栏  ›  技术社区  ›  Franz Wimmer

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

  •  1
  • Franz Wimmer  · 技术社区  · 6 年前

    我正在尝试建立一个 焦油档案 从我和Gradle的项目 窗户 .

    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 是tarball中的一个目录。使用调用unpack命令 --no-overwrite-dir 作品。

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Franz Wimmer    6 年前

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

    不过,在上述问题中发布的消息并不是一个错误。tar在该消息之后继续解包对象。通过附加 --no-overwrite-dir 切换到 tar -x 命令。