如何为GradleWorkerMain设置JVM选项?

kdfy810k  于 2022-11-23  发布在  其他
关注(0)|答案(3)|浏览(123)

当我设置GRADLE_OPTSJAVA_OPTS时,当我为我的项目运行./gradlew build时,它们是为GradleWrapperMain设置的。但是我也需要为GradleWorkerMain设置它们。
我该怎么做?
这是Gradle作业在Bamboo中运行时的ps列表。GradleWorkerMain中缺少我的JAVA_OPTS(例如-Dcool.opt=1)。

53854 ? Sl 2:13 /home/apps/jdk7/bin/java -Dorg.gradle.daemon=false -Dcool.opt=1 -Xms1g -Xmx8g -XX:PermSize=256m -XX:MaxPermSize=768m -Djava.security.egd=file:/dev/./urandom -Dorg.gradle.appname=gradlew -classpath /path/to/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain build
54272 ? Sl 0:19 /home/apps/jdk1.7.0_45/bin/java -Dfile.encoding=ISO-8859-1 -cp /path/to/lots/of/jars.jar org.gradle.process.internal.launcher.GradleWorkerMain
qlzsbp2j

qlzsbp2j1#

没有直接的方法可以为GradleWorkerMain进程设置JVM选项。大多数(但不是全部)派生新工作进程的任务类型都实现JavaForkOptions,因此您可以尝试:

tasks.withType(JavaForkOptions) {
    systemProperty "cool.opt", "1"
    jvmArgs "someArg"
}

不实现JavaForkOptions的任务类型通常允许以其他方式设置fork选项。例如:

tasks.withType(JavaCompile) {
    options.fork = true // otherwise won't fork
    options.forkOptions.jvmArgs = ["-Dcool.opt=1"]
}
plicqrtu

plicqrtu2#

一个类似的问题我已经看到了与gradle scala插件。我需要添加下面的配置来控制Xmx。

tasks.withType(ScalaCompile) {
    configure(scalaCompileOptions.forkOptions) {
        memoryMaximumSize = '1g'
    }
}
edqdpe6u

edqdpe6u3#

您可以通过以下方式进行控制:

test {
    maxHeapSize = "4g"
}

相关问题