IDEA Gradle并行编译内存溢出问题

复制代码
Expiring Daemon because JVM Tenured space is exhausted
Daemon will be stopped at the end of the build after running out of JVM memory

配置优先级

配置 Gradle 行为时,可以使用这些方法,但必须考虑它们的优先级。

下表列出了这些方法,按优先级从高到低排列(第一个优先级最高)

优先级 方法 位置 备注
1 命令行 > 命令行 标志优先于属性和环境变量
2 系统属性 > 项目根目录 存储在 gradle.properties 文件中
3 Gradle 属性 > GRADLE_USER_HOME > 项目根目录 > GRADLE_HOME 存储在 gradle.properties 文件中
4 环境变量 > 环境变量 由执行 Gradle 的环境提供

https://docs.gradle.org.cn/current/userguide/build_environment.html#priority_for_configurations

全局配置解决方法:

  • 参考Gradle配置官方文档,一定要在 GRADLE_USER_HOME 下面配置 gradle.properties
  • 默认情况下GRADLE_USER_HOME和GRADLE_HOME目录是没有 gradle.properties 文件的,要手动新建一个
  • gradle.properties 写入下面这些参数,读取的顺序是 GRADLE_USER_HOME > 项目根目录 > GRADLE_HOME,高优先级的参数覆盖低优先级的,最终所有位置都会遍历一遍

#开启线程守护,第一次编译时开线程,之后就不会再开(Gradle3.0之后默认开启这个,可以不加)

org.gradle.daemon=true

#配置编译时的虚拟机大小(不需要dump可以去掉)

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

#开启并行编译,相当于多条线程构建(全局配置,不加--parallel也会并行编译)

org.gradle.parallel=true

#启用新的孵化模式(实际上是configureondemand按需配置,不知道有什么作用)

org.gradle.configureondemand=true

相关推荐
28岁青春痘老男孩3 小时前
JDK8+SpringBoot2.x 升级 JDK 17 + Spring Boot 3.x
java·spring boot
方璧4 小时前
限流的算法
java·开发语言
元Y亨H4 小时前
Nacos - 服务注册
java·微服务
曲莫终4 小时前
Java VarHandle全面详解:从入门到精通
java·开发语言
一心赚狗粮的宇叔4 小时前
中级软件开发工程师2025年度总结
java·大数据·oracle·c#
奋进的芋圆4 小时前
DataSyncManager 详解与 Spring Boot 迁移指南
java·spring boot·后端
计算机程序设计小李同学5 小时前
个人数据管理系统
java·vue.js·spring boot·后端·web安全
小途软件5 小时前
用于机器人电池电量预测的Sarsa强化学习混合集成方法
java·人工智能·pytorch·python·深度学习·语言模型
alonewolf_995 小时前
Spring MVC启动与请求处理全流程解析:从DispatcherServlet到HandlerAdapter
java·spring·mvc
Echo娴5 小时前
Spring的开发步骤
java·后端·spring