基于这个问题,我想我可以在(例如)中定义这样的东西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但是它不是,我做错了什么?
你必须使用这个方法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 看一下这篇博客文章.