为什么赢了';gradle Exec任务是否运行我的命令?
我读过stackoverflow和gradle表格,但我仍然感到困惑。这里的最终目标是,在复制一些文件后,我想设置可写标志——因为“复制”不喜欢在“nix”(嗯…)上覆盖只读文件,也不能强制它这样做(哈!) 以下是我的概述:为什么赢了';gradle Exec任务是否运行我的命令?,gradle,Gradle,我读过stackoverflow和gradle表格,但我仍然感到困惑。这里的最终目标是,在复制一些文件后,我想设置可写标志——因为“复制”不喜欢在“nix”(嗯…)上覆盖只读文件,也不能强制它这样做(哈!) 以下是我的概述: task setPermissions (type : Exec) { executable = 'chmod -R +w' } // ... a little while later ... task('somethingElse') << { /
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时将目标目录附加到“args”
试用版2:
commandLine = 'chmod'
args = '-R', '+w'
commandLine = 'chmod -R +w'
commandLine = 'chmod', '-R', '+w'
在这种情况下,当我调用setPermissions时,我将目标目录附加到“commandLine”。我还尝试将其作为唯一的“args”值
试用版3:
commandLine = 'chmod'
args = '-R', '+w'
commandLine = 'chmod -R +w'
commandLine = 'chmod', '-R', '+w'
在这种情况下,当我调用setPermissions时,我将目标目录附加到“commandLine”。我还尝试将其作为唯一的“args”值
那么我在这里做错了什么,一个Exec任务不能正常运行,但是Rt.gR.Exec()会正常运行?您不能从另一个任务调用任务。您必须使一个依赖于另一个,或者从任务操作调用该方法。配置
exec
方法的语法与exec
任务的语法完全相同
PS:您是否尝试使用而不是
chmod
?Peter,谢谢。我来看看Project.exec。我在Copy.fileMode上阅读。我的理解是,这更像是说“chmod 755”对应于“+w”。我只想对所有文件启用“写入”,而不是篡改读取或执行。我是否误解了fileMode的工作原理?如果您想执行+w
,则不能使用fileMode
。我会检查是否有蚂蚁任务。