如何在gradle构建脚本中确定doFirst方法的顺序?我有以下示例脚本,其中包含两个doFirst方法.我知道它们是附加的,因为它们都执行,但发生这种情况的顺序看起来是倒退的:
task initialize
task depTask(dependsOn: initialize)
initialize {
doFirst {
println 'processing doFirst in initialization (configuration)'
}
println 'processing initialize (configuration)'
}
depTask {
println 'processing depTask (configuration)'
}
depTask << {
println 'executing depTask (execution)'
}
initialize << {
println 'executing initialize (execution)'
}
initialize.doFirst {
println 'executing doFirst on initialize (execution)'
}
Run Code Online (Sandbox Code Playgroud)
此脚本的输出是:
processing initialize (configuration)
processing depTask (configuration)
executing doFirst on initialize (execution)
processing doFirst in initialization (configuration)
executing initialize (execution)
executing depTask (execution)
Run Code Online (Sandbox Code Playgroud)
第一个"doFirst"函数在初始化任务中定义.第二个是在配置块之外定义的.为什么第一个实例在第二个实例之前没有执行?执行顺序向后看.我希望在配置定义中首先执行第一个.任何帮助理解这一点将不胜感激.
Pet*_*ser 15
initialize { doFirst { ... } }并且initialize.doFirst { ... }是完全相同的事情.两个语句都在任务的动作列表的前面插入一个动作.因此,稍后将插入的操作(在这种情况下,在脚本中进一步向下)将首先执行.
| 归档时间: |
|
| 查看次数: |
15437 次 |
| 最近记录: |