在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
,因此还有其他方法可以告诉您指定了哪种环境? 最佳答案
grails.util.Environment
是检查当前环境的首选方法,即使在BuildConfig.groovy
中也是如此。
问题似乎与if语句中的条件有关。测试环境称为“测试”,而不是“测试”,因此应看起来像if(Environment.current.name == 'test')
您可以通过使用枚举常量来避免魔术字符串if(Environment.current == Environment.TEST)
或完全避免使用带闭包的executeForEnvironment
的if语句,例如: Environment.executeForEnvironment(Environment.TEST) { // do some stuff just for the TEST environment }