簡體   English   中英

如何為 GradleWorkerMain 設置 JVM 選項?

[英]How do I set JVM options for GradleWorkerMain?

當我設置GRADLE_OPTSJAVA_OPTS時,這些是在我為我的項目運行./gradlew build時為GradleWrapperMain設置的。 但我也需要為GradleWorkerMain設置它們。

我怎么做?

這是 Gradle 作業在 Bamboo 中運行時的ps清單。 GradleWorkerMain 中缺少我的JAVA_OPTS (例如GradleWorkerMain -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

沒有直接的方法為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"]
}

我見過的一個類似問題是使用gradle scala插件。 我需要添加下面的配置來控制Xmx。

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

您可以通過以下方式控制它:

test {
    maxHeapSize = "4g"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM