Gradle, task type: Exec - commandLine not work in onLast
我想在gradle任务中从命令行执行一些命令(例如,在dir中打印所有文件):
1 2 3 4 5 6 7 8 | task dir(type: Exec) { def adbCommand = ["dir","*.*"] commandLine adbCommand standardOutput = new ByteArrayOutputStream() doLast { println ("result =" + standardOutput) } } |
是工作。 好。 但是,当我将它放在
1 2 3 4 5 6 7 8 | task dir(type: Exec) { doLast { def adbCommand = ["dir","*.*"] commandLine adbCommand standardOutput = new ByteArrayOutputStream() println ("result =" + standardOutput) } } |
我得到错误:
失败:构建失败,发生异常。
- 什么地方出了错:
任务':app:dir'的执行失败。
execCommand == null!
原因是,实际上,应该在构建的配置阶段配置
在您的第一个示例中,由于配置的所有工作都发生在配置阶段。 您的第二个示例尝试在
如果您确实需要在
1 2 3 4 5 6 7 | task someTaskName { doLast { exec { commandLine adbCommand } } } |
这是