我遇到了一些片段:
task senchaCmdBuild {
doLast {
exec {
workingDir 'src/main/app/MYAPP'
commandLine 'cmd', 'c', 'sencha app build'
}
exec {
workingDir 'src/main/app/MYOTHERAPP'
commandLine 'cmd', 'c', 'sencha app build'
}
}
}
它是类型化任务的替代语法
task someTypedTask(type: Exec) {
commandLine 'ls'
}
为什么没有类型声明会有效? 我们有一些文件吗?
答案 0 :(得分:1)
您在doLast中使用的exec
在Project界面中定义。文档说明:
ExecResult exec(Action action)执行外部命令 给定的操作配置ExecSpec,用于启动进程 此方法将一直阻塞,直到进程终止,并返回其结果。
答案 1 :(得分:1)
它只是由Project
实例定义的method。它执行闭包直接指定的命令,因此可用于在配置阶段运行命令。在给定的示例中,它用于在单个任务中执行两个命令(在执行阶段通过doLast
), imho 应该被视为不良做法。
还有其他方法直接执行并与任务类型共享配置闭包,即copy
,delete
和javaexec
。