我已经阅读了 stackoverflow 和 gradle 表格,但我仍然很难过。这里的最终目标是,在我复制了一些文件之后,我想设置可写标志——因为 'copy' 不喜欢覆盖 'nix 上的只读文件(呵呵...),也不能强制这样做(哼哼!)。
这是我所拥有的大纲:
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”的变体。
试验一:
commandLine = 'chmod'
args = '-R', '+w'
在这种情况下,当我调用 setPermissions 时,我将目标目录附加到“args”。
试验二:
commandLine = 'chmod -R +w'
在这种情况下,当我调用 setPermissions 时,我将目标目录附加到“commandLine”。我还尝试将其设为唯一的“args”值。
试验 3:
commandLine = 'chmod', '-R', '+w'
在这种情况下,当我调用 setPermissions 时,我将目标目录附加到“commandLine”。我还尝试将其设为唯一的“args”值。
那么我在这里做错了什么,Exec 任务无法正常运行,但 Rt.gR.exec() 会?