java - Eclipse Gradle 插件生成数百个进程

标签 java eclipse gradle gradle-eclipse

当我在打开 Gradle 插件的情况下启动 Eclipse 时,有时会突然生成数百个 Java 进程。它们看起来像这样:

26000 pts/24 Sl 0:01 /usr/lib/jvm/default-java//bin/java -Dfile.encoding=utf-8 -Xmx512m -XX:MaxPermSize=128m -XX:+UseG1GC -Dorg.gradle.appname=gradlew -classpath /[...]/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain [project name]:eclipseExternalBuild --configure-on-demand -Dorg.gradle.parallel=false

26230 pts/24 Sl 0:04 /usr/lib/jvm/jdk1.7.0_51/bin/java -XX:MaxPermSize=2048m -Xmx4096m -Dfile.encoding=UTF-8 -cp [...]/.gradle/wrapper/dists/gradle-1.8-all/2kopnp0i5dq014k75fp36m3vd5/gradle-1.8/lib/gradle-launcher-1.8.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 1.8 [...]/.gradle/daemon 10800000 4d4119b1-c332-4714-b0cd-1e80bc6dd78f -XX:MaxPermSize=2048m -Xmx4096m -Dfile.encoding=UTF-8

第一种过程看起来像是 Eclipse 正在构建东西;我的工作空间中的每个项目似乎至少有一个(有时最多 6 个!!)进程。几分钟后他们就会离开,这是合理的。

令人烦恼的是我不知道所有 GradleDaemon 正在做什么。

Gradle 依赖管理在 Eclipse 中启用。我在 Ubuntu 14.04 上使用 Eclipse 4.4 和 Gradle 1.8。

我该如何解决这个问题?当我的计算机开始无响应时,我基本上每隔几个小时就会调用 killall -9 java

最佳答案

我不知道是否可以为您解决问题,但至少我可以在这里为您提供一些指导。 Eclipse 启动后创建第一组守护进程,用于获取项目模型以填充项目的类路径。如果他们死得很快,他们可能会有一些短暂的超时。

对我来说,进程 26000 看起来更像是一个命令行调用,而不是由 Eclipse 插件启动的进程。 /usr/lib/jvm/default-java//bin/java 中的两个连续斜杠对我来说似乎很奇怪。您是否设置了带有尾部斜杠的 JAVA_HOME?

如果同时运行如此多的进程,则每个构建请求可能会启动一个新的进程,超时时间为 3 小时(输出中的 10800000 毫秒参数)。您可以使用系统属性自定义超时,但最好找出 Gradle 不重用已运行的守护进程的原因。它应该假设守护进程使用相同的 JVM、相同的 JVM 参数集以及可能的其他一些约束来执行此操作。 Gradle 用户主目录中有日志,您可以检查是否有任何可疑消息。

此外,我会使用线程转储检查其中一些进程,以查看是否存在死锁/饥饿阻止其正常处理。 IE。如果它们没有完成构建执行,它们将不会被重用于下一个构建请求,并且可能在超时后不会退出。

关于java - Eclipse Gradle 插件生成数百个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26517419/

相关文章:

java - 当 editText 上的 setText TextWatcher.onTextChanged 未调用时

java - TestNG 启动时发生内部错误

gradle - 即使按照之前的答案,也无法在 com.android.build.gradle.internal.api.ApplicationVariantImpl 上找到属性 'outputFile'

eclipse ResolutionException : Modules A and B export package P to module C

android - Unity Gradle build 找不到 Build Tools 修订版 28.0.0

android - 无法使用 ContentResolver 查询方法,NoSuchMethodError

java - 在 Eclipse RCP 中实现属性表编辑器的最简单方法是什么?

java - 如何在java android中排序后对json值求和?

java - Apache Camel RouteBuilder 不启动 configure()

java - 为什么我的 java 文件在 Eclipse 中看起来很奇怪?