gpt4 book ai didi

gradle - Gradle doFirst 和 doLast 的设计目的是什么?

转载 作者:行者123 更新时间:2023-12-03 10:02:17 26 4
gpt4 key购买 nike

例如,我有 Gradle 脚本,如:

myTask_A {
doFirst {
println "first string"

}
doLast {
println "last string"
}
}

以下两个任务的执行结果完全相同:
myTask_B {
doFirst {
println "first string"
println "last string"
}
}

myTask_C {
doLast {
println "first string"
println "last string"
}
}

doFirst 和 doLast 的设计目的是什么,因为上述任何任务都会产生相同的结果?

最佳答案

它与可扩展性、重用和避免重复有关。

对于一个内置任务可以扩展为:

task CopyAndThen(type: Copy) {
doFirst {
println "this is before the actual copy"
}
doLast {
println "this is after the actual copy"
}
}

想到的第二个常见场景是 multi project builds ,您可以在项目顶部有一个具有共同行为的任务定义:
allprojects {
task myTask_a {
doFirst {...}
}
}

然后特定的项目可以扩展它。
该任务本质上有一个 Closures 的列表。需要运行和选择 doFirstdoLast控制插入到列表的哪一端。

关于gradle - Gradle doFirst 和 doLast 的设计目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39848672/

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