我怎样才能只在 build.gradle 中执行特定任务?

How can I only execute specific task in build.gradle?

build.gradle 是:

task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") {
    from "src"
    into "dest"
    println "copy"
}

task hello {
    println "hello"
}

当我尝试使用 ./gradlew copy 时,copyhello 都被执行了。输出如下:

> Configure project :
copy
hello

如何只执行copy

在您的示例中,仅执行 copy 任务。但是,两者都是 配置的

Gradle 构建在构建生命周期中具有三个不同的阶段:

  1. 一个初始化阶段
  2. 配置阶段
  3. 执行阶段

默认情况下,Gradle 在 start-up 配置所有任务,但可以推迟许多类型的配置(惰性配置)。

您在 hello 任务中的 println 语句是配置的一部分,这就是无论您打算执行什么任务都会看到它的原因。您还可以在 > Configure project : header.

下的输出中看到

如果你只想在实际执行时打印 "hello",将它移动到 doLast 块中,如下所示:

task hello {
    doLast {
        println "hello"
    }
}