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

相关推荐
吃饱了得干活17 小时前
Spring Cloud Gateway 微服务网关:路由、断言、过滤器
java·spring cloud
lwx5728019 小时前
探秘InnoDB:搞懂它的内存、线程、磁盘与日志刷盘策略
java·后端
Flynt20 小时前
从Spring Boot 4.0升到4.1,我在Maven和gRPC上栽了跟头
java·spring boot·后端
plainGeekDev21 小时前
Activity 间传值 → Navigation 参数
android·java·kotlin
plainGeekDev21 小时前
onActivityResult → ActivityResult API
android·java·kotlin
Sunia21 小时前
《AgentX 专栏》10-生产部署:3台2C4G云服务器把企业级Agent真正跑起来的完整方案
java·架构
ZhengEnCi1 天前
J7A-高级Java工程师面试三道灵魂拷问-深度广度与工程素养的终极检验
java·后端
狼爷2 天前
吃透 Java Function 接口,搞定 99% 的 Stream 场景
java·函数式编程
祎雪双十Gy2 天前
从 DataX 的配置加载说起:我用 FastJson2 做了一个轻量级动态配置管理库
java·后端
小锋java12342 天前
分享一套锋哥原创的SpringBoot4+Vue3宠物领养网站系统
java