如何为GradleWorkerMain设置JVM选项?

时间:2014-02-20 11:42:11

标签: java jvm gradle bamboo

当我设置GRADLE_OPTSJAVA_OPTS时,当我为项目运行GradleWrapperMain时,这些设置为./gradlew build。但是我也需要为GradleWorkerMain设置它们。

我该怎么做?

这是Gradle作业在Bamboo中运行时的ps列表。 JAVA_OPTS已遗漏了-Dcool.opt=1(例如GradleWorkerMain)。

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

我见过的一个类似问题是使用gradle scala插件。我需要添加下面的配置来控制Xmx。

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