按惯例将文件复制到Tar时,为* .sh设置fileMode

时间:2016-04-07 16:39:06

标签: gradle

如果我有像这样的gradle文件

apply plugin: 'distribution'

version = '1.2'
 distributions {
    custom {}
}

按照惯例,“src / custom / dist”目录中的所有文件都将自动包含在发行版中。 https://docs.gradle.org/current/userguide/distribution_plugin.html

如果我想在其中一些文件上设置fileMode怎么办?

如果我只是指定fileMode,它就不会做任何事情。

  into("") {
    from "src/custom/scripts"
    fileMode 0755
  }

编辑:如果我将脚本放在另一个目录中并明确地复制它们(而不是按惯例复制它们,下面的代码可以工作。

distributions {
  custom {
    baseName = 'myApp'
    contents {
      into("") {
        from "src/external/scripts"
        fileMode 0755
      }
    }
  }

我想知道是否可以将这些文件放在传统的地方,但是要更改某些文件的属性。

1 个答案:

答案 0 :(得分:0)

关注@RaGe链接我想出了这个:

distributions {
  custom {
    baseName = 'myApp'
    contents {
      //Other stuff
      eachFile { file ->
        if(file.getName().endsWith(".sh")) {
          file.setMode(0755)
      }
    }
  }