当前位置: 首页 > 知识库问答 >
问题:

gradle doLast哲学

赵永新
2023-03-14

在gradle构建文件中,有多种方法可以指定为特定任务执行的项。doFirst方法将一个任务项放在任务堆栈的顶部,以便在任务堆栈的其余部分之前执行该项。如果你需要在主要任务之前做一些准备项目,这是非常得心应手的。实际上,如果多次调用doFirst的话,那么在最后一次调用中添加的项是第一个执行的东西。

理论上,doLast应该做类似的事情,但是应该在任务的主要执行完成之后调用doLast。但是,在Gradle1.2中,如果调用doLast,然后在gradle.build文件中的doLast之后向主任务添加一些内容,则主任务项就是最后调用的项。例如,以下gradle构建文件:

task myTask

myTask << {
    println "myTask main execution block"
}

myTask.doFirst {
println "myTask doFirst call one"
}

myTask.doFirst {
    println "myTask doFirst call two"
}

myTask.doLast {
    println "myTask doLast"
}

myTask << {
    println "myTask more main execution block"
}

产生以下输出:

:myTask
myTask doFirst call two
myTask doFirst call one
myTask main execution block
myTask doLast
myTask more main execution block

BUILD SUCCESSFUL

Total time: 1.585 secs

我的问题是:doLast的意图是简单地在任务的结尾附加步骤(就像doFirst在任务的开头附加步骤)吗?如果是这样的话,doLast除了提供DoFirst的对称性之外似乎毫无意义。用户只需执行myTask<<{...}在结尾加上某物。我本以为doLast会确保任何“doLast”项都会在主执行块之后完成。

这仅仅是Gradle的doLast应该工作的方式,还是这是一个bug??(或者,我在调用doLast之后在主执行块上附加了一些东西是愚蠢的--这是在插入另一个执行块之后的一个简单错误)。

共有1个答案

聂和宜
2023-03-14

<<Dolast的别名,因此这里的一切都按照预期工作。

 类似资料:
  • 目录 为什么 Redux 不把 state 和 action 传给订阅者? 为什么 Redux 不支持 class 形式的 action 和 reducer? 为什么 middleware 签名是柯里化的形式? 为什么 applyMiddlewrae 要为 dispatch 创建一个闭包? 在 combineReducers 调用其所有 reducer 时,为什么不引入第三个参数来表示整个 sta

  • 哲库科技,预计每轮面试45分钟 结果:一面专业面15分钟,只问了项目问题 二面综合面30分钟,问了专业课,c++,项目,等其它问题 三面hr面,只问了10分钟 不知道是不是凉了,求offer!#提前批##哲库科技#

  • 本节的内容有些趣味性,涉及到很多人为什么会选择Python,为什么会喜欢这门语言。我带大家膜拜下Python作者的Python之禅,然后再来了解下Python的编程规范。 2.1.1 Zend Of Python 在Kali中启动终端,输入Python,进入交互模式。 图2 输入命令 import this “一首诗”呈现在我们眼前。 图3 内容如下: Beautiful is better th

  • 本章的目标是开发一个 Web 爬虫,它测试了第 6.1 节中提到的“到达哲学”猜想。 7.1 起步 在本书的仓库中,你将找到一些帮助你起步的代码: WikiNodeExample.java包含前一章的代码,展示了 DOM 树中深度优先搜索(DFS)的递归和迭代实现。 WikiNodeIterable.java包含Iterable类,用于遍历 DOM 树。我将在下一节中解释这段代码。 WikiFet

  • 本文向大家介绍餐饮哲学家问题(DPP),包括了餐饮哲学家问题(DPP)的使用技巧和注意事项,需要的朋友参考一下 餐饮哲学家的问题指出,有5位哲学家共享一张圆桌,他们交替吃饭和思考。每个哲学家都有一碗饭和5根筷子。哲学家需要左右筷子才能吃饭。饿了的哲学家只有在两把筷子都齐备的情况下才可以吃东西,否则哲学家放下筷子,重新开始思考。 餐饮哲学家是一个经典的同步问题,因为它演示了一大类并发控制问题。 餐饮

  • 今天,我决定尝试解决哲学家吃饭的问题。所以我写下面的代码。但我认为这是不正确的,所以如果有人告诉我这是怎么回事,我会很高兴的。我使用fork作为锁(我只读取它们,因为我不把对它们的访问放在同步块中),我有一个扩展线程的类,它保留了它的两个锁。 我认为有些不对劲,因为第五位哲学家从不吃饭,第四位和第三位哲学家大多吃饭。提前感谢。