我已经阅读了stackoverflow和gradle表单,但我仍然感到难过。这里的最终目标是在复制一些文件后,我想设置可写标志 - 因为' copy'不喜欢覆盖' nix上的只读文件(呵呵...),也不能强制这样做(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()
}
我尝试过&#34; setPermissions&#34;。
试用1:
commandLine = 'chmod'
args = '-R', '+w'
在这种情况下,我将目标目录附加到&#34; args&#34;当我打电话给setPermissions。
试用2:
commandLine = 'chmod -R +w'
在这种情况下,我将目标目录附加到&#34; commandLine&#34;当我调用setPermissions时。我也试过把它变成唯一的### args&#34;值。
试用3:
commandLine = 'chmod', '-R', '+w'
在这种情况下,我将目标目录附加到&#34; commandLine&#34;当我调用setPermissions时。我也试过把它变成唯一的### args&#34;值。
所以我在这里做错了,Exec任务不能正常运行,但Rt.gR.exec()会不会?
答案 0 :(得分:4)
您无法从其他任务调用任务。您必须让一个人依赖另一个,或者从任务操作中调用Project.exec 方法。配置exec
方法的语法与Exec
任务完全相同。
PS:您是否尝试使用Copy.fileMode代替chmod
?