gpt4 book ai didi

gradle - 仅当任务不是最新时才如何执行任务依赖性?

转载 作者:行者123 更新时间:2023-12-03 05:33:25 28 4
gpt4 key购买 nike

我有一些gradle任务,看起来像这样:


task taskA(){
inputs.file('config')
outputs.file('a-out')
}

task taskB(dependsOn: taskA){
/*
* Strictly speaking, 'a-out' is also a input of taskB, but
* if there is already output for taskB and 'config' has not changed,
* there is no need to regenerate 'a-out'.
*/
inputs.file('config')
outputs.file('b-out')
}

taskB是我感兴趣的实际任务, taskA仅充当 taskB的中间数据的生成者。如果没有先前的输出,那么在 taskA之前执行 taskB至关重要。

如果 taskA是最新的(或从构建缓存加载),我希望能够完全跳过 taskB,因为在这种情况下,中间数据生成只是浪费时间。上面的设置将为这两个任务输出UP-TO-DATE,但这不是我想要的,因为在使用生成缓存时,解压缩 taskA缓存会花费一些时间,这又是浪费的。

最佳答案

我最终通过创建一个外部脚本来依次解决此问题,该脚本依次调用taskAtaskB,然后创建一个与taskC具有相同输入的taskB并调用该脚本。

这实际上将两个任务组合为一个,并且在最终输出为最新时将跳过这两个任务。它可以工作,但是我希望可以使用gradle来实现此目的的更清洁方法。

关于gradle - 仅当任务不是最新时才如何执行任务依赖性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58006679/

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