Gradle守护进程为什么会死亡?

3
我该如何确定我的Gradle Daemon崩溃的原因?我只收到了以下信息: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

即使我们没有要求,构建也在守护进程中运行,最终失败了。


1
这是一个持续的失败吗?使用--info或--debug标志运行gradle可能会给你一些提示。 - Amnon Shochot
你上一次使用守护程序构建东西是什么时候,它在此之后死了多久? - Jolta
它相当一致。我将尝试使用--info或--debug,但我的假设是我不会得到太多信息,因为该进程不具有守护程序所拥有的信息。 - Jacob Tomaw
@Jolta 我应该注意到这是在构建过程中发生的。当成功时,此构建需要3.5小时。有时会在17分钟内失败,有时会在几个小时内失败。有一些可预测的模式,但我不知道该如何修复。 - Jacob Tomaw
@barti_ddu 很好的建议,我已经这样做了。既然我已经添加了它,我想知道空格是否会成为一个问题。 - Jacob Tomaw
显示剩余2条评论
1个回答

1

Gradle build daemon disappeared unexpectedly最常见的情况是由于其他进程终止了长时间运行的Gradle Daemon进程,客户端进程(Daemon使用本地TCP连接进行通信)试图发送消息但未收到响应。

例如,在构建过程中运行gradle --stopkillall java将会重现此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接