没有为任务启用Gradle构建缓存

时间:2018-05-24 12:09:12

标签: gradle kotlin incremental-build gradle-cache

我为项目启用了gradle构建缓存。但是,我们正在使用一些非内置任务,例如来自第三方插件的npm-install。 Gradle没有为这些任务启用缓存。例如,当执行此类任务时,它会显示类似下面的内容:

Task :data-export-ui-kjs:npm-configure
Build cache key for task ':data-export-ui-kjs:npm-configure' is bbe0dafcd467a2afb2834acafe2993f5
Caching disabled for task ':data-export-ui-kjs:npm-configure': Caching has not been enabled for the task

有没有办法为这种非内置任务启用构建缓存?

2 个答案:

答案 0 :(得分:2)

任务需要选择加入可缓存(请参阅Cacheable tasks),因为对每个可缓存的任务都没有意义。

通过使用@CacheableTask或使用task.outputs.cacheIf { true }注释任务,可以选择加入,因此您可以为npm configure任务执行此操作。

请注意,可缓存的任务需要declare their inputs and outputs correctly。如果他们没有,那么您可能会遇到无效的构建失败。

答案 1 :(得分:1)

Gradle documentation说:

  

第三方插件适用于构建缓存。最突出的例子是Android插件3.1+和Kotlin插件1.2.21+。对于其他第三方插件,请检查其文档以确定它们是否支持构建缓存。

所以它取决于提供任务npm-configure的插件。

如果您使用的是SRS中的gradle-node-plugin,那么根据their changelog版本,它应该从版本1.2.0开始工作。

相关问题