2012-03-20 86 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

相关问题