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