Проблемы с разрешениями при изменении пути к файлам в задаче копирования оценок - PullRequest
0 голосов
/ 13 октября 2018

Не был уверен, где лучше спросить об этом, хотя лучшее место было здесь!У меня есть проблема с задачей Gradle Copy, когда я распаковываю zip, а затем изменяю пути к файлам, чтобы удалить корневую папку в zip.Это был рекомендуемый рабочий процесс, поскольку функция выбора определенных подкаталогов в zip-файле недоступна в Gradle: https://github.com/gradle/gradle/issues/1108

Так что вот моя проблема, это моя задача Gradle:

task unpackTomcat( type: Copy ) {
  from zipTree( "/Users/x/Downloads/tomcat-X.zip" )
  into "/app/tomcat"
  fileMode 0660
  dirMode 0750
  includeEmptyDirs = false 
  eachFile { details ->
    def path = details.path
    details.path = path.substring( path.indexOf( '/' ) + 1 )
  }
}

Это распакует zip и переместит все файлы из папки apache-tomcat-X и поместит их в мою базовую папку.IE удалить первую часть пути.Однако, когда это происходит, разрешения для папок неверны:

drwxr-xr-x   3 X  X   102B Oct 12 13:58 temp/
drwxr-xr-x  27 X  X   918B Oct 12 13:58 lib/
drwxr-xr-x  12 X  X   408B Oct 12 13:58 conf/
drwxr-xr-x  25 X  X   850B Oct 12 13:58 bin/
-rw-rw----   1 X  X   1.7K Oct 12 13:58 NOTICE
-rw-rw----   1 X  X    57K Oct 12 13:58 LICENSE
drwxr-x---   3 X  X   102B Oct 12 13:58 ../
drwxr-x---   8 X  X   272B Oct 12 13:58 ./

Даже установка umask на 027 (попытка удалить другие разрешения из файлов / каталога) в JVM Gradle даже не останавливает это(Это должно вынудить JVM использовать разрешения UMASK, если не задан файловый режим. Если я удалю часть eachFile вышеупомянутой задачи, у папок будут правильные разрешения, но, очевидно, они будут в папке apache-tomcat-X, которая получаетсозданный, которого я не хочу иметь в виду.

Так что я в растерянности относительно того, почему это происходит, и хотел бы, чтобы люди, более опытные с Gradle, помогли мне здесь. Похоже, проблема заключается в том путиизменение вызывает создание папок с моей базовой UMASK вместо UMASK, которая должна использоваться, и это похоже на ошибку, но я решил проверить здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...