有时我看到:
task hey << {
println "Hello, Gradle!"
}
Run Code Online (Sandbox Code Playgroud)
其他时候我看到:
task hey {
println "Hello, Gradle!"
}
Run Code Online (Sandbox Code Playgroud)
什么时候使用" <<
",什么时候不使用(和为什么)?
<<
是简写doLast
.你问题中的任务并不等同.
这个任务:
task hey << {
println "Hello, Gradle!"
}
Run Code Online (Sandbox Code Playgroud)
相当于这个任务:
task hey {
doLast {
println "Hello, Gradle!"
}
}
Run Code Online (Sandbox Code Playgroud)
无论您是否正在运行该特定任务,每次执行构建脚本时,第二个示例中的代码都将执行.例如,如果您有以下任务然后运行gradle goodbye
,您将看到"Hello,World!" 和"再见,世界!" 即使您只执行"再见"任务:
task hello {
println "Hello, world!"
}
task goodbye {
println "Goodbye, world!"
}
Run Code Online (Sandbox Code Playgroud)
结果:
$ gradle goodbye
Hello, world!
Goodbye, world!
:goodbye UP-TO-DATE
Run Code Online (Sandbox Code Playgroud)
但是,如果您更新了要使用的任务定义<<
或doLast
(例如task hello << {}
),则只能看到println
您执行的任务.
Adam Murdoch描述了在这篇文章中执行任务中的代码的时间.我在这里引用了一些相关信息:
执行与任务相关的代码时,有两个不同的时间点:第一个是配置时间,即构建脚本执行时.我们的想法是,此时您需要配置任务,以便在其他时间点(即执行时间)执行正确的操作.执行时间是任务执行其实际工作的时间点,并且仅在选择执行任务以及执行其依赖项之后才会发生.
每个任务都有一系列操作,这些操作按任务执行时指定的顺序运行.动作只是一个闭包或Action实现.doFirst()方法将任务配置为在序列的开头添加操作.doLast()和<<方法将任务配置为在序列的末尾添加操作.
归档时间: |
|
查看次数: |
191 次 |
最近记录: |