在成绩复制任务中更改文件路径时的权限问题

时间:2018-10-12 21:38:45

标签: gradle gradlew

虽然最好的地方在这里,但我真的不确定在哪里最好问这个问题! 我在Gradle Copy Task上遇到问题,我要解压缩一个zip,然后修改文件路径以删除zip中的根文件夹。建议使用此工作流程,因为Gradle中不提供用于选择zip中的某些子目录的功能: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 ./

即使在Gradle JVM上将umask设置为027(尝试从文件/目录中删除其他权限)甚至都不能停止(这将强制JVM使用UMASK的权限,因为没有设置文件模式)。如果我删除上述任务的eachFile部分,则该文件夹具有正确的权限,但是显然会在创建的apache-tomcat-X文件夹中,而我不想发生该文件夹。

所以我不知道为什么会发生这种情况,希望有更多Gradle经验的人来帮助我。看来问题是路径更改导致使用我的基本UMASK而不是应该使用的UMASK创建文件夹,这似乎是一个错误,但我想在这里进行检查。

0 个答案:

没有答案