Groovy 梯度任务执行

Groovy 梯度任务执行,groovy,gradle,Groovy,Gradle,下面的gradle构建脚本 task hello << { println "task hello" } hello << { println "th" } 但一个人的订单反转导致了错误: * What went wrong: A problem occurred evaluating root project > Could not find property 'hello' on root project 这个错误是怎么回事

下面的gradle构建脚本

task hello << {
            println "task hello"
}

hello << {
   println "th"
}
但一个人的订单反转导致了错误:

* What went wrong:
A problem occurred evaluating root project 
> Could not find property 'hello' on root project

这个错误是怎么回事?你能用Groovy的观点解释一下吗?

代码可以用Java伪代码进行如下翻译:

Task task = project.addTask("hello");
task.doLast(() -> println("hello"));

task = project.getTaskByName("hello"); // works fine, because a task "hello" has bee added before
task.doLast(() -> println("th"));
如果你切换这两个操作,你会得到

Task task = project.getTaskByName("hello"); // doesn't work, because no task "hello" has been defined before
task.doLast(() -> println("th"));

task = project.addTask("hello");
task.doLast(() -> println("hello"));

很明显,由于您试图修改一个尚未定义的任务,这是行不通的。

当然,如果您只是简单地交换这些代码段,那么第一个任务中就不会有“
任务”
”。
Task task = project.getTaskByName("hello"); // doesn't work, because no task "hello" has been defined before
task.doLast(() -> println("th"));

task = project.addTask("hello");
task.doLast(() -> println("hello"));