2014-03-12 75 views
1

我有一個Grails 2.3.X項目,它無法編譯,除非在-Xss1024k命令行參數中給出更多的堆棧大小。目前這工作正常,但每次我第一次構建項目時都需要導出/設置JVM選項。另外,開始在項目中新鮮開發的開發人員總會遇到這種情況,所以我希望它成爲從版本控制中檢出的代碼的一部分。如何在Grails BuildConfig中設置JVM堆棧大小

有沒有辦法在Grails 2.3.X BuildConfig中設置stacksize(-Xss)JVM選項?

P.S. -Xss JVM選項是較少記錄的選項之一。我發現它只通過internet archives鏈接在這裏在StackOverflow

+0

什麼的Grails的版本? –

+0

@Joshua,我更新了包含版本信息的問題 – kaskelotti

+1

您是否使用分叉執行?如果是這樣,那麼您可以將JVM參數作爲地圖傳遞。根據文檔:http://grails.org/doc/2.3.x/guide/commandLine.html#forkedMode –

回答

4

由於您使用Grails 2.3可以使用forked execution。你的情況,你可以通過其他參數這樣:

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

什麼與grails 1.3.7 vesrion。我試過這個'grails run-app GRAILS_OPTS =「 - Xmx1G -Xms256m -XX:MaxPermSize = 256m」'是否正確。如何增加堆大小。 – 2016-01-12 05:42:41

3

您可以通過在BuildConfig.groovy所有JVM ARGS爲一個封閉:

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"] 
    }