报错信息
主要报错信息
Failed to notify build listener.
> GC overhead limit exceeded
idea报错
解决方案
解决方案看这篇CSDN博客,亲测有效。
在工程根目录下新建gradle.properties
文件
并加入以下配置
#开启线程守护,第一次编译时开线程,之后就不会再开了
org.gradle.daemon=true
#配置编译时的虚拟机大小
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#开启并行编译,相当于多条线程再走
org.gradle.parallel=true
#启用新的孵化模式
org.gradle.configureondemand=true
我这边也尝试了一下在/Users/xxx/.gradle/
中添加gradle.properties
配置,是不生效的。
但我们从.gradle/gradle.properties
中发现,默认内存是1024M
参数配置详解
虽然已经有了解决方案,正好趁这个机会好好探究以下gradle.properties
配置,不然知其然不知其所以然,顺便整一个统一模板出来。
根据前文,和我个人经验,目前主要有两个目的:
- user/.gradle/gradle.properties配置无效,有没有其他办法一次性配置生效。
- 设定好常用配置,最好能提效!
全局配置
我google一圈,发现了这篇文章Gradle(二) build 环境配置,讲的很全面!!
里面有个重要信息
我的idea Gradle配置如下
我去gradle-6.8.3根目录下添加gradle.properties
,然后重新编译,为了严谨性,idea重启后重新编译,通过了!
并没有报内存溢出问题。
说明配置成功了!!
那么问题来了,之前用户.gradle/gradle.properties
为何没效果,跟Gradle(二) build 环境配置作者说的有悖论!
问题重新定位为:“.gradle/gradle.properties不生效”
再次Google一下
解决 mac 下 ~/.gradle/gradle.properties 设置不生效问题
至此问题已经迎刃而解了~
之前那篇作者说的GRADLE_USER_HOME
是指环境变量~~,并不是我理解的user/.gradle/gradle.properties
,害。。。一开始理解就有误
常用配置
#配置编译时的虚拟机大小
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#Gradle 将使用上一次构建的 Task outputs,这个选项通常会让构建更快。
org.gradle.caching=true
#指定 Gradle 最多使用的工作进程数。默认值为CPU的处理器数
#org.gradle.workers.max=2
#将会启用 Gradle 的守护进程,推荐开启,这将会大大减少多次构建的重复初始化 的资源消耗
org.gradle.daemon=true
#在指定的空闲毫秒数后,Gradle守护程序将自行终止。默认值为10800000(3小时)
org.gradle.daemon.idletimeout=3600000
#JVM 将会使用 org.gradle.workers.max 所设置的工作进程数来并行的执行构建
org.gradle.parallel=true
#启用新的孵化模式
org.gradle.configureondemand=true
最后感谢一下Gradle(二) build 环境配置的作者,写的太好了!