在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 }

09-30 14:33
查看更多