我为项目启用了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
有没有办法为这种非内置任务启用构建缓存?
答案 0 :(得分:2)
任务需要选择加入可缓存(请参阅Cacheable tasks),因为对每个可缓存的任务都没有意义。
通过使用@CacheableTask或使用task.outputs.cacheIf { true }
注释任务,可以选择加入,因此您可以为npm configure任务执行此操作。
请注意,可缓存的任务需要declare their inputs and outputs correctly。如果他们没有,那么您可能会遇到无效的构建失败。
答案 1 :(得分:1)
第三方插件适用于构建缓存。最突出的例子是Android插件3.1+和Kotlin插件1.2.21+。对于其他第三方插件,请检查其文档以确定它们是否支持构建缓存。
所以它取决于提供任务npm-configure
的插件。
如果您使用的是SRS中的gradle-node-plugin
,那么根据their changelog版本,它应该从版本1.2.0开始工作。