如何在Grails BuildConfig中设置JVM堆栈大小

如何在Grails BuildConfig中设置JVM堆栈大小,grails,jvm-arguments,Grails,Jvm Arguments,我有一个Grails2.3.X项目,它无法编译,除非使用-Xss1024k命令行参数指定更多的堆栈大小。目前,这很好,但每次我第一次构建项目时都需要导出/设置JVM选项。另外,刚开始项目的开发人员总是会遇到这个问题,所以我希望它成为从版本控制中签出的代码的一部分 有没有办法在Grails2.3.X BuildConfig中设置stacksize(-Xss)JVM选项? 另外,-Xss JVM选项是文档较少的选项之一。我只能通过StackOverflow中的链接找到它,因为您使用的是Grails

我有一个Grails2.3.X项目,它无法编译,除非使用
-Xss1024k
命令行参数指定更多的堆栈大小。目前,这很好,但每次我第一次构建项目时都需要导出/设置JVM选项。另外,刚开始项目的开发人员总是会遇到这个问题,所以我希望它成为从版本控制中签出的代码的一部分

有没有办法在Grails2.3.X BuildConfig中设置stacksize(-Xss)JVM选项?


另外,-Xss JVM选项是文档较少的选项之一。我只能通过StackOverflow中的链接找到它,因为您使用的是Grails 2.3,您可以使用它。在您的情况下,您可以传递以下附加参数:

grails.project.fork.compile.jvmArgs = [ '-Xss1024k' ]

因为您使用的是Grails2.3,所以可以使用。在您的情况下,您可以传递以下附加参数:

grails.project.fork.compile.jvmArgs = [ '-Xss1024k' ]

您可以将BuildConfig.groovy中的所有JVM参数作为闭包传递:

grails {
    tomcat {
        jvmArgs = ["-server", "-XX:MaxPermSize=2048m", "-XX:MaxNewSize=512m", "-XX:NewSize=512m",
                "-Xms2048m", "-Xmx2048m", "-XX:SurvivorRatio=128", "-XX:MaxTenuringThreshold=0",
                "-XX:+UseTLAB", "-XX:+UseConcMarkSweepGC", "-XX:+CMSClassUnloadingEnabled",
                "-XX:+CMSIncrementalMode", "-XX:-UseGCOverheadLimit", "-XX:+ExplicitGCInvokesConcurrent"]
    }

您可以将BuildConfig.groovy中的所有JVM参数作为闭包传递:

grails {
    tomcat {
        jvmArgs = ["-server", "-XX:MaxPermSize=2048m", "-XX:MaxNewSize=512m", "-XX:NewSize=512m",
                "-Xms2048m", "-Xmx2048m", "-XX:SurvivorRatio=128", "-XX:MaxTenuringThreshold=0",
                "-XX:+UseTLAB", "-XX:+UseConcMarkSweepGC", "-XX:+CMSClassUnloadingEnabled",
                "-XX:+CMSIncrementalMode", "-XX:-UseGCOverheadLimit", "-XX:+ExplicitGCInvokesConcurrent"]
    }

什么版本的Grails?@Joshua,我更新了问题以包含版本信息您是否使用分叉执行?如果是这样,那么可以将JVM参数作为映射传递。根据文件:@Joshua,不幸的是这没有帮助。我不确定forked模式在Windows上是否有效。不过,这是一个很好的建议。我可以确认分叉模式在Windows上运行得很好。我现在正在运行它。否则,无法通过BuildConfig.groovy指定JVM参数来运行应用程序。唯一的另一个建议是制作一个自定义甘特脚本,其中包含它们,供开发人员使用。很明显,该脚本将是项目的一部分,并在源代码管理中。Grails的哪个版本?@Joshua,我更新了问题,以包含版本信息。您是否使用分叉执行?如果是这样,那么可以将JVM参数作为映射传递。根据文件:@Joshua,不幸的是这没有帮助。我不确定forked模式在Windows上是否有效。不过,这是一个很好的建议。我可以确认分叉模式在Windows上运行得很好。我现在正在运行它。否则,无法通过BuildConfig.groovy指定JVM参数来运行应用程序。唯一的另一个建议是制作一个自定义甘特脚本,其中包含它们,供开发人员使用。显然,该脚本将成为项目和源代码管理的一部分。Grails1.3.7Vesrion就是这样。我尝试了这个
grails运行应用程序grails\u OPTS=“-Xmx1G-Xms256m-XX:MaxPermSize=256m”
是否正确。如何增加堆大小。Grails1.3.7Vesrion就是这样。我尝试了这个
grails运行应用程序grails\u OPTS=“-Xmx1G-Xms256m-XX:MaxPermSize=256m”
是否正确。如何增加堆大小。