【发布时间】:2015-06-22 00:07:02
【问题描述】:
如何确定我的 Gradle 守护进程为何死亡?我得到的唯一消息是L
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
这发生在活动构建中。几个步骤将完成,一个步骤似乎处于活动状态,然后构建失败。
这是在将我们的内存参数 (Xmx Xms PermGen) 从调用 gradlew 的 shell 脚本移动到 gradle.properties 并直接调用 gradlew 之后开始的。
build.sh
export GRADLE_OPTS="\"-Xmx1024m\" \"-Xms256m\" \"-XX:MaxPermSize=256m\""
export JAVA_HOME="/usr/local/java/jdk1.6"
exec ./gradlew "$@"
除了gradle.properties
org.gradle.java.home=/usr/local/java/jdk1.6/
org.gradle.jvmargs=-Xmx1024m -Xms256m -XX:MaxPermSize=256m
此更改后 Gradle 警告:
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html
即使我们没有要求它这样做,构建也在一个守护进程中运行,最终失败。
【问题讨论】:
-
这是一贯的失败吗?使用 --info 或 --debug 标志运行 gradle 可能会给你一个提示
-
自您上次使用守护程序构建某些东西以来,它已经死了多久了?
-
相当一致。我将尝试使用--info 或--debug,但我的假设是我不会得到太多,因为进程不会拥有它是拥有它的守护进程的信息。
-
@Jolta 我应该注意到这发生在构建过程中。此构建成功后需要 3.5 小时。有时它会在 17 分钟内失败,有时会在几个小时内失败。有一些可预测的模式,但我不知道要修复什么。
-
猜是
OutOfMemory:) 你能发布构建脚本和gradle.properties的相关差异吗?
标签: gradle gradle-daemon