作为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
,则不会。
那是为什么?
答案 0 :(得分:0)
在Test任务的Gradle DSL文档中描述了答案。
测试始终在(一个或多个)单独的JVM中运行。
您在gradle.properties
环境变量中配置的任何内容仅适用于Gradle JVM进程。
最大堆大小的配置与您通过jvmArgs
或最好通过maxHeapSize进行的配置一样。
关于文件编码&GRADLE_OPTS
,我没有确切的答案。我最好的猜测是它还没有以这种方式实现。您可以为每个编译任务设置文件编码,如下所示:
tasks.withType(Compile) {
options.encoding = 'UTF-8'
}