3

私はstackoverflowとgradleフォームを読みましたが、まだ困惑しています。ここでの最終的な目標は、いくつかのファイルをコピーした後、書き込み可能フラグを設定したいということです。そうしてください(ハーランフ!)。

ここに私が持っているものの概要があります:

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'

その場合、setPermissions を呼び出したときにターゲット ディレクトリを「args」に追加しました。

試行 2:

commandLine = 'chmod -R +w'

その場合、setPermissions を呼び出したときに、ターゲット ディレクトリを「commandLine」に追加しました。また、それを唯一の「args」値にしようとしました。

試行 3:

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

その場合、setPermissions を呼び出したときに、ターゲット ディレクトリを「commandLine」に追加しました。また、それを唯一の「args」値にしようとしました。

では、Rt.gR.exec() は実行するのに、Exec タスクはこれを適切に実行しないというのは、ここで何が間違っているのでしょうか?

4

1 に答える 1

4

別のタスクからタスクを呼び出すことはできません。一方を他方に依存させるか、タスクアクションからProject.exec メソッドを呼び出す必要があります。メソッドを構成するための構文は、タスクexecの場合とまったく同じです。Exec

PS:代わりにCopy.fileModechmodを使用しようとしましたか?

于 2012-09-27T19:46:43.610 に答える