作为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,则不会。
为什么会这样呢?
发布于 2019-04-26 16:35:07
答案在测试任务的Gradle DSL文档中进行了描述。
测试总是在(一个或多个)单独的JVM中运行。
无论您在gradle.properties环境变量中配置什么,都只适用于Gradle JVM进程。
最大堆大小是像您通过jvmArgs或者最好是通过maxHeapSize配置的那样配置的。
关于文件编码& GRADLE_OPTS,我没有明确的答案。我最好的猜测是,它只是没有以这种方式实施。可以在每个项目的基础上为编译任务设置文件编码,如下所示:
tasks.withType(Compile) {
options.encoding = 'UTF-8'
}https://stackoverflow.com/questions/55869354
复制相似问题