Как создать архив tar с помощью gradle в Windows без информации о владельце файла? - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь собрать архив tar из моего проекта с gradle на Windows .

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 - это каталог внутри архива. Вызов команды unpack с помощью --no-overwrite-dir работает.

Gradle использует мое имя пользователя Windows в качестве владельца всех файлов и каталогов в созданном архиве. Я подозреваю, что это является причиной ошибки. Как я могу удалить информацию о владельце из архива с Gradle?

1 Ответ

0 голосов
/ 03 июля 2018

Основная проблема была не в gradle, а в целевой среде. Каталог config принадлежит пользователю root, что запрещает tar перезаписывать метки времени создания, изменения и доступа.

Сообщение, опубликованное в вопросе выше, не является ошибкой. Тар продолжает распаковывать объекты после этого сообщения. Этого сообщения можно легко избежать, добавив ключ --no-overwrite-dir к команде tar -x.

...