gradle - 为什么 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 模块中启用了 jacoco 和 scoverage 插件造成的。这些是 Scala 模块,所以我只是从这些模块中删除了 jacoco 插件,然后它就可以工作了。
推荐阅读
- python - Python中的聚合和排序
- react-native - 在 npm 安装 react-native 项目期间出现问题
- php - 如何在 Alpine Linux 容器上安装 ZeroMQ for PHP?
- python - 模块“火炬”在 Visual Studio 代码中没有“空”成员错误
- svg - 使用 D3.js 强制时如何防止气泡接触 svg 框架/边框?
- python - Python 以数字方式列出文件
- reactjs - 在反应中更新状态更新的表单组件不会重新渲染
- mongodb - Mongoose distinct 返回空数组
- typescript - “会话和部分”类型上不存在属性“用户 ID”
' - azure - 是否有获取 Azure 订阅信息的 API