11

我为我的项目启用了 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

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

4

2 回答 2

8

任务需要选择加入缓存(请参阅Cacheable tasks),因为并不是每个任务都可缓存。

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

请注意,可缓存任务需要正确声明其输入和输出。如果他们不这样做,那么您可能会遇到无效的构建失败。

于 2018-05-28T07:21:14.707 回答
1

Gradle 文档说:

有第三方插件可以很好地与构建缓存配合使用。最突出的例子是 Android 插件 3.1+ 和 Kotlin 插件 1.2.21+。对于其他第三方插件,请查看其文档以了解它们是否支持构建缓存。

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

如果您使用的是gradle-node-pluginfrom SRS,它应该根据他们的 changelog从 1.2.0 版本开始工作。

于 2018-05-24T14:49:00.170 回答