2011-09-27 75 views
2

如何在(已啓動)grails交互模式中指定系統屬性?在Grails 2.0交互模式中指定系統屬性

比如我會在命令行中指定環境:

grails -Dgrails.env=staging run-app 

但在交互模式是不可能這樣(因爲JVM已經啓動):

grails 
grails> -Dgrails.env=staging run-app 

回答

2

這似乎是工作在Grails 1.3.7交互模式下。在scripts/SetProperty.groovy到您的Grails應用程序添加腳本:

includeTargets << grailsScript('_GrailsArgParsing') 

target (default:'Set a system property') { 
    depends('parseArguments') 
    if (argsMap['params'][0] && argsMap['params'][1]) { 
     System.setProperty(argsMap['params'][0], argsMap['params'][1]) 
    } else { 
     println 'You must define a property to set' 
    } 
} 

然後在交互模式set-property grails.env staging

+0

不錯。我可以證實這個「解決方法」也適用於Grails 2.0.0.M2。謝謝。 – verglor