0

假设我正在使用定义 task 的 Gradle 插件,该插件foo在特定条件下是最新的。不幸的是,我没有来源,所以我不知道它是什么时候。

如果原始条件为真,并且自定义条件也为真,我想使它foo是最新的。

我知道我可以像这样添加我的自定义条件:

foo.outputs.upToDateWhen {
    return myCondition == true
}

但我希望能够做这样的事情:

foo.outputs.upToDateWhen {
    return super.upToDateWhen && myCondition == true
}

有什么办法可以做我正在寻找的东西吗?我可以添加一个最新的条件,让它保留原来的最新条件吗?

4

1 回答 1

1

您所描述的实际上是默认行为。文档upToDateWhen中对该方法的描述是:

添加谓词以确定此任务的输出是否是最新的。给定的闭包在任务执行时执行。闭包作为参数传递给任务。如果闭包返回 false,则任务输出被认为是过时的,任务将被执行。

您可以添加多个此类谓词。当任何谓词返回 false 时,任务输出被认为是过时的。

于 2017-09-19T20:59:49.460 回答