为什么不会摇篮Exec的任务运行我的命令?(Why won't gradle Exec ta

2019-09-23 03:38发布

我看过周围计算器和gradle这个形式,但我还是难倒。 这里的最终目标是,经过我复制一些文件,我想设置写标志 - 因为“复制”不喜欢在覆盖“尼克斯(呵呵...)只读文件,也不能强迫这样做(harumph!)。

下面是我有什么提纲:

task setPermissions (type : Exec) {
  executable = 'chmod -R +w'
}

// ... a little while later ...

task('somethingElse') << {
  // ... unrelated stuff ...
  def String targetDir = "$aVar/theTarget"

  // >> TASK CALL <<
  setPermissions {
    commandLine = [executable + " $targetDir"]
  }

  // but that doesn't work... this does...
  proc = Runtime.getRuntime().exec("chmod -R +w $deployDir")
  proc.waitFor()

}

我曾在“setPermissions”尝试变化。

试验1:

commandLine = 'chmod'
args = '-R', '+w'

在这种情况下,我附加了目标目录“ARGS”当我打电话setPermissions。

试验2:

commandLine = 'chmod -R +w'

在这种情况下,我附加了目标目录“命令行”当我打电话setPermissions。 我也尝试使其成为唯一的“ARGS”值。

试验3:

commandLine = 'chmod', '-R', '+w'

在这种情况下,我附加了目标目录“命令行”当我打电话setPermissions。 我也尝试使其成为唯一的“ARGS”值。

所以我在做什么错在这里,一个Exec的任务将无法正常运行它,但Rt.gR.exec()会?

Answer 1:

你不能从另一个调用任务的任务。 你必须做出一个依赖于另一个,或致电Project.exec从任务操作方法 。 用于配置语法exec方法是完全一样的Exec任务。

PS:你有没有试过用Copy.fileMode而不是chmod



文章来源: Why won't gradle Exec task run my command?
标签: gradle