2012-03-20 61 views
0
task test(type: Test, overwrite: true, dependsOn: [setupUser]) { 
    maxHeapSize "3000m" 
    allJvmArgs "-Xmx3000m" 
} 

錯誤:Gradle - 將不允許設置maxHeapSize?

* What went wrong: 
A problem occurred evaluating root project 'myproject'. 
> Could not find method allJvmArgs() for arguments [-Xmx3000m] on root project 'myproject'. 

無論我怎麼努力,我得到堆的問題,當我運行gradle test。我正在使用1.0-milestone-9

回答

5

第二行(allJvmArgs "-Xmx3000m")是錯誤的語法,它解釋了Gradle抱怨的原因。第一行(maxHeapSize "3000m")沒問題,如果它不起作用,我會感到驚訝。 "3000m"雖然可能過高,但可能會在創建JVM時導致錯誤。在任何情況下,尋找以下調試輸出(-d):

[DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] creating process builder for Gradle Worker 1 
[DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] in directory /xxx 
[DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] with argument#0 = -Xmx300m 
... 
[DEBUG] [org.gradle.process.internal.DefaultExecHandle] Started Gradle Worker 1. 
+0

我會盡量降低請求的內存。不過,從這篇文章看來,它的語法看起來是正確的。 http://gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html – 2012-03-21 13:58:41

+0

語法對於'jvmArgs'是正確的,但對'allJvmArgs'不是。後者很少直接使用,因此不提供相同的便利方法。我看不到在您鏈接到的頁面上任何地方使用的錯誤語法。無論如何,解決你的問題的正確方法是'maxHeapSize'。如上所示,很容易驗證內存設置是否正確轉發。 – 2012-03-21 22:44:35