我已经编写了一个构建脚本:
task hello // 1
hello << { // 2
println "task hello"
}
hello << { // 3
println "another task hello"
}
我理解//1
定义Task
类型的对象,//2
和//3
将leftShift(Closure c)
运算符应用于该任务。当我使用命令gradle -q hello
运行该脚本时,我看到了以下输出:
task hello
another task hello
考虑到这一点,我们可以说gradle -q task_name
执行所有应用了operator <<
的封闭体,或者命令有另一种含义吗?
答案 0 :(得分:6)
gradle -q hello
将日志级别设置为 quiet (println
s记录在该级别,因此仍会显示)并执行任务hello
。执行任务意味着执行其所有任务操作。您的构建脚本会添加两个任务操作,这些操作将按添加顺序执行。 (<<
是doLast
的别名,它将任务操作添加到任务的任务操作列表的末尾。
# gradle -h ... -q, --quiet Log errors only. ...
答案 1 :(得分:2)
不,-q
开关用于禁止记录到控制台(错误级别除外)和print
语句的所有消息。
如果您执行以下脚本:
task lol
lol << {
println '1'
}
lol << {
logger.lifecycle '2'
}
没有-q
切换您在输出中同时获得1
和2
。只有-q
时,才会打印1
。
<<
运算符完全不同 - 它用于将action
添加到task
。有关详细信息,请参阅this答案。