为一项任务禁用远程 Gradle 缓存

Nik*_*kem 5 gradle gradle-cache

我有一个 Gradle 构建,配置了本地和远程缓存。除此之外,我使用Spotless Gradle 插件。该插件已将其任务(spotlessCheckspotlessApply)标记为可缓存。问题是,在我的情况下,任务本身非常快,因此检查远程缓存中任务的输出比实际运行任务花费更多时间。

所以我的问题:是否可以禁用第三个插件引入的一项任务的缓存?更好的是,是否可以仅针对一项任务禁用远程缓存?

Bjø*_*ter 5

我认为您提到的这两个特定任务没有启用构建缓存。但其他人喜欢spotlessJava这样做。

无论如何,当您确定哪些任务使用构建缓存(例如通过使用 运行-i)时,您可以使用 来配置它们outputs.cacheIf { false }

请注意,这会禁用本地和远程构建缓存。我不知道有一种方法可以有选择地仅禁用给定任务的远程缓存,但保持本地缓存启用。

例如:

tasks.named("spotlessJava") {
    outputs.cacheIf { false }
}
Run Code Online (Sandbox Code Playgroud)