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

相关推荐
starzy199019 分钟前
Flink SlotManager启动流程源码深度剖析:从ResourceManager到Slot分配的完整链路
java·大数据·flink
极光通讯20 分钟前
服务器内存来料检验(IQC)实操:批次追溯、外观判定与上机验证
java·服务器·算法
4SAPI22 分钟前
AI API Gateway平台哪个好?从架构视角看企业多模型网关选型与实践
java·大数据·人工智能·gateway·php
EatFan24 分钟前
2026 后端 AI 工程化:Spring AI 2.0、MCP 协议与 Agent 内嵌如何收进 Java 生产系统
java·人工智能·spring·agent·spring ai·spring boot 3·mcp
JPower_mr.g31 分钟前
SmartCall 音色管理技术解析:基于 SPI 的可扩展音色注册架构
java·开发语言·人工智能·ai·架构·开源
测试开发Kevin33 分钟前
IDEA工程结构解析:项目、模块、库、Facet、Artifact (工件) 概念说明
java·ide·intellij idea
大侠归来34 分钟前
Spring Boot 2.1 → 3.5 迁移推演:从实战出发的完整路线图
java·spring boot·后端
Wang's Blog41 分钟前
Java 中间件之 RabbitMQ 快速入门: SpringAMQP 的 DirectExchange 路由模式
java·中间件·java-rabbitmq
Sweet锦1 小时前
jDCS 开源项目:面向工业现场的 Modbus RTU 数据采集基础框架
java·spring boot·物联网·开源
海马1 小时前
Spring Boot 开发知识整理
java·spring boot·后端