Gradle:增加gradle run task启动的java进程的堆大小

时间:2017-08-03 08:03:55

标签: java gradle heap

我有一个启动java项目的gradle任务。基本上是这样的:

gradle run -PmainClass=package.path.ServiceMain

现在,我想增加gradle启动的java进程的堆,因为标准堆大小太小。问题是我成功只增加了gradle进程的大小,而不是gradle项目启动的java进程的大小。 我在Java代码中使用此命令检查堆大小:

Runtime.getRuntime().totalMemory()

我测试了这个检查,这样使用它是有效的。但它告诉我,gradle始终以相同的堆大小启动我的Java进程。

我试验了这些选项:

DEFAULT_JVM_OPTS='-Xmx1024m -Xms512m'
GRADLE_OPTS='-Xmx1024m -Xms512m'
JAVA_OPTS='-Xmx1024m -Xms512m'

没有成功。

我也试过这个:

gradle run -PmainClass=package.path.ServiceMain -DXmx1024m -DXms512m

仍然没有成功。

当然,我已经搜索了网页,但我发现只有一些提示说我可以修改build.gradle文件。不幸的是,这不是我想要/可以的。

我需要在命令行上通过gradle run task 指定java程序的java堆大小(由于实际的项目结构)。

提前感谢您的支持。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:7)

当上面的 @Opal 表明不可能

我能找到的最简单/最简单的替代方法(暂时)是将这个小片段添加到tasks.withType(JavaExec) { jvmArgs = ['-Xms512m', '-Xmx512m'] } 文件中:

  insert into Table2 SELECT * FROM Table1 where id=new.id;

答案 1 :(得分:1)

在Linux中使用此命令:export _JAVA_OPTIONS="-Xms4000m -Xmx8000m",其中可以更改值4000和8000。而不是JAVA_OPTS,请使用_JAVA_OPTIONS


旧答案: 您可以通过编辑$ GRADLE_USER_HOME / .gradle / gradle.properties(默认情况下为〜/ .gradle / gradle.properties)并设置org来设置或增加用于Gradle构建和Gradle守护进程的内存使用限制(或其他JVM参数)。 gradle.jvmargs:

org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m

来源:https://riptutorial.com/gradle/example/11911/tuning-jvm-memory-usage-parameters-for-gradle