首页 > 解决方案 > 为什么 gradle 会忽略我的最大堆大小并使用默认值 512MB?

问题描述

我已经设置了环境变量JAVA_TOOL_OPTIONS=-Xms1024m -Xmx8192m,我从 Gradle 构建中收到了这个错误:

2021-04-06T11:49:15.294+0100 [QUIET] [system.out] Error occurred during initialization of VM
2021-04-06T11:49:15.295+0100 [QUIET] [system.out] Initial heap size set to a larger value than the maximum heap size

为了解决这个问题,我尝试将以下内容添加到顶级build.gradle文件中:

allprojects {
    // ...

    test {
        minHeapSize = "1g"
        maxHeapSize = "8g"
    }
}

过去,为测试设置最大堆大小已经解决了这个问题。但在这种情况下,它没有。Gradle 仍在将最大堆大小设置为 512MB,如下所示。(我用****下面的替换了一些子字符串。)

2021-04-06T11:49:15.188+0100 [INFO] [org.gradle.process.internal.DefaultExecHandle] Starting process 'Gradle Test Executor 1'. Working directory: **** Command: ****\java.exe -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Dorg.gradle.native=false -Xmx512m **** worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 1'
2021-04-06T11:49:15.188+0100 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Environment for process 'Gradle Test Executor 1': ****
2021-04-06T11:49:15.188+0100 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTING
2021-04-06T11:49:15.188+0100 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Waiting until process started: Gradle Test Executor 1.
2021-04-06T11:49:15.215+0100 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTED
2021-04-06T11:49:15.215+0100 [INFO] [org.gradle.process.internal.DefaultExecHandle] Successfully started process 'Gradle Test Executor 1'
2021-04-06T11:49:15.215+0100 [DEBUG] [org.gradle.process.internal.ExecHandleRunner] waiting until streams are handled...
2021-04-06T11:49:15.289+0100 [ERROR] [system.err] Picked up JAVA_TOOL_OPTIONS: -Xms1024m -Xmx8192m
2021-04-06T11:49:15.294+0100 [QUIET] [system.out] Error occurred during initialization of VM
2021-04-06T11:49:15.295+0100 [QUIET] [system.out] Initial heap size set to a larger value than the maximum heap size
2021-04-06T11:49:15.307+0100 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED
2021-04-06T11:49:15.307+0100 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'Gradle Test Executor 1' finished with exit value 1 (state: FAILED)

为什么 Gradle 6.5.1 忽略我的maxHeapSize

另一个 Gradle 文件中有另一个test块,但没有其他maxHeapSize.

标签: gradle

解决方案


这是由于在同一个 Gradle 模块中启用了 jacoco 和 scoverage 插件造成的。这些是 Scala 模块,所以我只是从这些模块中删除了 jacoco 插件,然后它就可以工作了。


推荐阅读