gpt4 book ai didi

java - Gradle 任务的 doFirst() 不会首先执行,而是在任务完成之后执行

转载 作者:行者123 更新时间:2023-12-02 10:55:13 25 4
gpt4 key购买 nike

我用 Java 创建了一个 Gradle 任务:

class TestTask extends Exec {

public TestTask() {

doLast(new Action<Object>(){
@Override
public void execute(Object task) {
System.out.println("Should be last ");
}
});

doFirst(new Action<Object>(){
@Override
public void execute(Object task) {
System.out.println("Should be first ");
}
});

commandLine("echo", "Should be between");
}
}

执行这个任务,我期望得到

Should be first
Should be between
Should be last

但是我得到了

Should be between
Should be first
Should be last

我正在将插件从 Groovy 转换为 Java,在 Groovy 中,定义如下时处理顺序与预期一致:

task dofirsttest(type: Exec) {
doFirst{
println "Should be first"
}
doLast{
println "Should be last"
}
commandLine "echo", "Should be between"
}

我的任务有问题吗?

最佳答案

commandLine("echo", "Should be Between"); 处于任务的配置阶段。所以会先执行。看看:https://docs.gradle.org/current/userguide/build_lifecycle.html

关于java - Gradle 任务的 doFirst() 不会首先执行,而是在任务完成之后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51822696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com