在Grails中,Environment.current.name
会告诉我们在run-app
调用期间指定的环境名称,这是一个对话:
grails run-app -Dgrails.env=testing
但Environment.current.name
无法在BuildConfig.groovy
内查看,如下所示:
if(Environment.current.name == 'testing') {
// do something else
}
由于Environment.current.name
中BuildConfig.groovy
不可用,有没有其他方法可以说明指定的环境?
答案 0 :(得分:2)
grails.util.Environment
是检查当前环境的首选方式,即使在BuildConfig.groovy
中也是如此。
问题似乎与if语句中的条件有关。测试环境称为“测试”,而不是“测试”,所以应该是这样的
if(Environment.current.name == 'test')
您可以使用枚举常量来避免魔术字符串
if(Environment.current == Environment.TEST)
或者完全避免if语句使用带有闭包的executeForEnvironment
,例如:
Environment.executeForEnvironment(Environment.TEST) {
// do some stuff just for the TEST environment
}