该 Exec 任务执行一次,而不是多次。你在打电话 Exec.setCommandLine(...) 在配置阶段多次。当Exec任务执行时(在执行阶段),它只执行最后一个任务。
Exec
Exec.setCommandLine(...)
你可能想打电话 Project.exec(...) 多次。
Project.exec(...)
例如:
ext { path = 'src/main/java/com/<snip>' } task chmod { inputs.dir path doLast { fileTree(path).each { File javaFile -> exec { println "Chmoding $javaFile" commandLine 'chmod', 'a+w', javaFile.absolutePath } } } }
如果您想通过一个命令执行此操作,请尝试
commandLine 'bash', 'chmod', '-R', 'a+w', '/src/main/java/com/<snip>'