定义自定义Grails环境

Dón*_*nal 3 grails groovy

基于这个问题,我想我可以在(例如)中定义这样的东西resources.groovy

def currentEnv = Environment.current
if (currentEnv == Environment.CUSTOM && currentEnv.name == 'mock') {
    println 'Do some stuff for the mock env'
}
Run Code Online (Sandbox Code Playgroud)

if语句中的代码应该在我运行时执行(例如)grails run-app -Denv=mock但是它不是,我做错了什么?

del*_*uan 9

你必须使用这个方法Environment.executeForCurrentEnvironment(),如下所示:

import grails.util.Environment

     grails.util.Environment.executeForCurrentEnvironment {
         development {
             println 'Running in DEV mode.'
         }
         production {
             println 'Running in production mode.'
         }
         mock {
             println 'Running in custom "mock" mode.'
         }
     }
Run Code Online (Sandbox Code Playgroud)

并以这种方式调用grails: grails -Dgrails.env=mock run-app

从mrhaki 看一下这篇博客文章.