我怎样才能只在 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
时,copy
和 hello
都被执行了。输出如下:
> Configure project :
copy
hello
如何只执行copy
?
在您的示例中,仅执行 copy
任务。但是,两者都是 配置的 。
Gradle 构建在构建生命周期中具有三个不同的阶段:
- 一个初始化阶段
- 配置阶段
- 执行阶段
默认情况下,Gradle 在 start-up 配置所有任务,但可以推迟许多类型的配置(惰性配置)。
您在 hello
任务中的 println
语句是配置的一部分,这就是无论您打算执行什么任务都会看到它的原因。您还可以在 > Configure project :
header.
下的输出中看到
如果你只想在实际执行时打印 "hello",将它移动到 doLast
块中,如下所示:
task hello {
doLast {
println "hello"
}
}
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
时,copy
和 hello
都被执行了。输出如下:
> Configure project :
copy
hello
如何只执行copy
?
在您的示例中,仅执行 copy
任务。但是,两者都是 配置的 。
Gradle 构建在构建生命周期中具有三个不同的阶段:
- 一个初始化阶段
- 配置阶段
- 执行阶段
默认情况下,Gradle 在 start-up 配置所有任务,但可以推迟许多类型的配置(惰性配置)。
您在 hello
任务中的 println
语句是配置的一部分,这就是无论您打算执行什么任务都会看到它的原因。您还可以在 > Configure project :
header.
如果你只想在实际执行时打印 "hello",将它移动到 doLast
块中,如下所示:
task hello {
doLast {
println "hello"
}
}