不考虑gradle.properties设置

问题描述 投票:0回答:1

作为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它不会。

这是为什么?

gradle
1个回答
0
投票

答案在Qazxswpoi任务的Gradle DSL文档中进行了描述。

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

无论您在Test中配置什么,环境变量仅适用于Gradle JVM进程。

最大堆大小的配置与您通过gradle.properties或最好通过jvmArgs进行配置相同。

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

GRADLE_OPTS

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

© www.soinside.com 2019 - 2024. All rights reserved.