当我设置GRADLE_OPTS
或JAVA_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
答案 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'
}
}