如何使 gradle processResources 任务更快

Posted

技术标签:

【中文标题】如何使 gradle processResources 任务更快【英文标题】:How to make gradle processResources task faster 【发布时间】:2018-12-10 14:18:51 【问题描述】:

我正在开发 Spring Boot 项目,但我正忙于构建时间。我的项目的 processResources 任务耗时太长。

如果资源文件是最新的,它只需要大约 10 秒。 但如果文件至少更改一个,则需要几分钟。 这是因为一个资源库占用了 90000+ 个文件。

我尝试使用 --build-cache 选项,但似乎无法在 processResources 任务中工作。

我可以让 processResources 任务只对更改的文件起作用吗?如何使 processResources 任务更快?

【问题讨论】:

"因为一个资源库占用了 90000+ 个文件" 为什么你有这么多文件?是哪个资源库? 该资源库中的文件是否正在更改?如果不是,那么我会将其拆分:创建一个单独的任务来仅处理该库的资源,让 processResources 依赖它,并让 Gradle 跟踪几乎总是最新的。这样,其他资源文件更改不会影响 Gradle 对慢速库的最新检查。 @g00glen00b 我正在使用material-design-icons 库 @nickb 你能详细说明一下吗?我是 gradle 新手。 @shj 你真的需要单独的.*design*.svg 文件吗?如果你使用npm install @mdi/font,它应该只安装CSS和webfont,这会大大减少文件数量。 【参考方案1】:

使用排除!

processResources 
    exclude '**/*.svg'     // Exclude all SVG files
    exclude '**/design/**' // Exclude whole "design" directory

【讨论】:

以上是关于如何使 gradle processResources 任务更快的主要内容,如果未能解决你的问题,请参考以下文章

如何在gradle中从一个位置复制到另一个位置时即时修改文件

如何在spring boot gradle项目的.jar根目录中构建一个文件夹?

如何使 runProguard 为 android-library Gradle 插件工作?

如何使旧的 Eclipse 项目在带有 Gradle 的 Android Studio 上运行? [关闭]

Gradle 同步 BUILD SUCCESSFUL 但使项目失败

如何解决 Maven/Gradle 中的多级间接缺失依赖地狱?