在Gradle中设置JAVA_OPTS和JAVA_TOOL_OPTIONS

问题描述 投票:3回答:2

运行一个大的Gradle构建(使用JDK7)我收到两个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.propertiesbuild.gradle中包含这些设置?如果是,那么正确的用法是什么?

我已经在build.gradle尝试了这个:

allprojects {
    System.setProperty('JAVA_OPTS', "-Xmx2048m -XX:MaxPermSize=1024m")
    System.setProperty('JAVA_TOOL_OPTIONS', "-Xmx1024m -XX:MaxPermSize=1024m -Xms768m")
}

但这不起作用。

gradle build.gradle java-opts
2个回答
2
投票

您能否尝试创建一个gradle.properties文件,该文件应位于根build.gradle旁边,并具有以下内容:

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=1024m 

另一种选择是通过compileJava任务设置所需的选项,请参阅herehere

不幸的是,不知道如何设置JAVA_TOOL_OPTIONS,似乎没有支持。


0
投票

从我收集的内容来看,gradlew旨在进行调整。因此,在gradlew脚本中添加这些环境变量是可以接受的,并且该设置将在所有CI环境中可用。

© www.soinside.com 2019 - 2024. All rights reserved.