我得到org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileScala'
試圖用Gradle構建我的Scala項目,如果我用--stacktrace
運行Gradle,它看起來像罪魁禍首是java.lang.OutOfMemoryError: PermGen space
。如何在Gradle下爲Scala編譯增加PermGen空間?
我試圖分叉編譯任務,並將MaxPermSize
添加到分叉的JVM參數,但所做的只是將OOME移動到InvocationTargetException
後面。
這裏是我的compileScala
任務build.gradle
塊:
compileScala {
options.fork = true
options.forkOptions.jvmArgs = ['-XX:MaxPermSize=512m']
scalaCompileOptions.additionalParameters = [
"-feature",
"-language:reflectiveCalls", // used for config structural typing
"-language:postfixOps"
]
}
我知道我可以解決此通過增加全球範圍內使用$JAVA_OPTIONS
PermGen的空間,但我更喜歡,我可以與源檢查的解決方案所以沒有人需要在本地定製任何東西來構建項目。
FWIW,我在Mac OS 10.9.3上使用Gradle 1.11和Java 1.6.0_65下的Scala 2.10.3。
'ScalaCompile#options'是Scala/Java聯合編譯的Java編譯選項。 'javaOptions'會是一個更好的名字。 –
我想知道是否是這種情況。 –