不考虑gradle.properties设置

时间:2019-04-26 14:06:24

标签: gradle

作为gradle的入门者,我正在将项目从maven转换为gradle。运行测试时,我得到一个OutOfMemoryError: Java heap space。如果我添加

tasks.withType(Test) {
    jvmArgs = ['-Xmx2g']
}

build.gradle即可。但是,如果仅在gradle.properties中将其配置为org.gradle.jvmargs=-Xmx2g,则不会。

与编码相同。只有设置了GRADLE_OPTS=-Dfile.encoding=UTF-8时,一项测试才能成功运行。但是,如果我在systemProp.file.encoding=UTF-8中设置了gradle.properties,则不会。

那是为什么?

1 个答案:

答案 0 :(得分:0)

Test任务的Gradle DSL文档中描述了答案。

  

测试始终在(一个或多个)单独的JVM中运行。

您在gradle.properties环境变量中配置的任何内容仅适用于Gradle JVM进程。

最大堆大小的配置与您通过jvmArgs或最好通过maxHeapSize进行的配置一样。

关于文件编码&GRADLE_OPTS,我没有确切的答案。我最好的猜测是它还没有以这种方式实现。您可以为每个编译任务设置文件编码,如下所示:

tasks.withType(Compile) {
    options.encoding = 'UTF-8'
}

发件人:Gradle Goodness: Set Java Compiler Encoding