运行大型Gradle构建(使用JDK 7)时,我收到两个OutOfMemoryErrors
:
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Test worker"
字符串
当我设置下面的两个环境变量时,构建运行并正常工作:
export JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=1024m"
export JAVA_TOOL_OPTIONS="-Xmx1024m -XX:MaxPermSize=1024m -Xms768m"
./gradlew test --stacktrace
...
Picked up JAVA_TOOL_OPTIONS: -Xmx1024m -XX:MaxPermSize=1024m -Xms768m
...
型
是否有办法将这些设置包含在gradle.properties
或build.gradle
中?如果有,正确的用法是什么?
我在build.gradle
中试过:
allprojects {
System.setProperty('JAVA_OPTS', "-Xmx2048m -XX:MaxPermSize=1024m")
System.setProperty('JAVA_TOOL_OPTIONS', "-Xmx1024m -XX:MaxPermSize=1024m -Xms768m")
}
型
但这行不通
3条答案
按热度按时间jucafojl1#
请尝试创建一个
gradle.properties
文件,该文件应该位于rootbuild.gradle
旁边,并将其与以下内容一起使用:字符串
另一种选择是通过
compileJava
任务设置所需的选项,请参见此处和here。不幸的是,不知道如何设置
JAVA_TOOL_OPTIONS
,它似乎不支持。8fsztsew2#
据我所知,gradlew是要调整的。所以在gradlew脚本中添加这些环境变量是可以接受的,并且该设置在所有CI环境中都可用。
n53p2ov03#
由于这个问题是旧的,但仍然相关,我张贴我在官方文档中发现:
基本上,由
gradlew distZip
生成的运行脚本有一个参数JAVA_OPTS集,可以通过使用gradle插件“application”设置,并通过字符串
在这个例子中,我将系统属性“greeting.language”设置为“en”。
以类似的方式,你可以这样设置JVM参数:
型
在Gradle 6.9.1及更新版本的官方文档中找到了此内容