2014-02-20 3 views
5

GRADLE_OPTS 또는 JAVA_OPTS으로 설정하면 프로젝트에 ./gradlew build을 실행하면 GradleWrapperMain으로 설정됩니다. 하지만 나는 그들에게 GradleWorkerMain으로 설정해야합니다.GradleWorkerMain의 JVM 옵션을 어떻게 설정합니까?

어떻게하면됩니까?

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 
+0

왜 필요합니까? 더 큰 문제는 해결하려고합니까? 구체적인 예를 들려 줄 수 있습니까? –

+0

이유는 내 경우에 다소 어리 석다. GradleWorkerMain 프로세스가 빌드 서버에서 멈추는 경우가있다. 내가 죽일 때 grep 할 무언가를 갖고 싶습니다. 이 빌드 빌드 서버이기 때문에 모든 GradleWorkerMain 프로세스를 죽일 수는 없습니다. 그래서'-Dbamboo.buildKey = $ {bamboo.buildKey}'는 그 트릭을 할 것입니다. – neu242

답변

5

GradleWorkerMain 프로세스의 JVM 옵션을 직접 설정하는 방법은 없습니다. 당신이 시도 할 수 있도록 포크 새로운 노동자, JavaForkOptions를 구현하는 대부분 (전부는 아니지만) 작업 유형 : JavaForkOptions를 구현하지 않는

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

작업 유형은 일반적으로 다른 방법으로 포크 옵션을 설정할 수 있습니다. 예 :

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

신속한 답변 주셔서 감사합니다! – neu242

0

비슷한 문제는 gradle scala plugin입니다. Xmx를 제어하기 위해 아래 설정을 추가해야했습니다.

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