Gradle执行所有任务?

Gradle执行所有任务?,gradle,Gradle,我有这样一个非常简单的构建脚本 task hello{ println("hello World") } task bye { println("bye") } 我在命令行上运行 gradle hello我得到以下输出: hello World bye :hello UP-TO-DATE 为什么它要执行任务“bye”(我假设它是在“bye”打印出来后执行的)?谢谢 这是一个常见的陷阱: task hello { println("Any code in here i

我有这样一个非常简单的构建脚本

task hello{
    println("hello World")
}

task bye {
    println("bye")
}
我在命令行上运行
gradle hello
我得到以下输出:

hello World
bye
:hello UP-TO-DATE
为什么它要执行任务“bye”(我假设它是在“bye”打印出来后执行的)?谢谢

这是一个常见的陷阱:

task hello {
    println("Any code in here is about *configuring* the\
    task. By default, all tasks always get configured.")
    doLast {
        println("Any code in here is about *executing* the task.\
        This code only gets run if and when Gradle decides to execute the task.")
    }
}

配置阶段和执行阶段之间的区别可能是Gradle中需要理解的最重要的概念。一开始可能会让人困惑,将来可能会消失。Ant/Maven世界中的一种类似情况是,这些工具首先解析XML构建脚本并构建一个对象模型(可能在此过程中解析一些属性),然后才执行构建。

添加到Peter answer中,如果要执行所有任务,可以指定defaultTasks列表

defaultTasks 'clean', 'run'

task clean {
    doLast {
        println 'Default Cleaning!'
    }
}

task run {
    doLast {
        println 'Default Running!'
    }
}

task other {
    doLast {
        println "I'm not a default task!"
    }
}
输出

Output of gradle -q
> gradle -q
Default Cleaning!
Default Running!
更多细节可在此处找到

谢谢,这肯定能澄清问题!!:)如果任务类型为GradeBuild,则不存在此问题。现在还不清楚什么时候添加doLast选项。我今天也遇到了同样的问题,不知道为什么会发生这种情况!谢谢很高兴它帮助了你:)类似的问题: