语法糖/聪明的黑客问题。
我想以一种更优雅/更简洁的方式来编写多环境配置块,而不是下面的方式(它可以工作,但很难看):
environments {
development {
// long list of directives
}
["staging", "production"].each{"$it"{ // <- ugly!
// another long list of directives
}}
}我试着像下面这样拼凑一些数字用户线,将propertyMissing添加到EnvironmentBlockEvaluator.metaClass中,但我做不到。主要的问题是,在environments { }中的闭包有机会对它们做任何事情之前,配置文件中的空字词(比如staging)就变成了空的groovy.util.ConfigObject。我不知道为什么。
(staging | production) {
// directives
}有什么好主意吗?
发布于 2015-07-07 01:12:24
您可以在resources.groovy中使用switch块-我认为它也适用于Config.groovy (尽管还没有实际测试)。
switch (Environment.current) {
case Environment.DEVELOPMENT:
case Environment.TEST:
//stuff for dev & test environments
break
default:
//production stuff
}不过,比起["staging", "production"].each{"$it"...,它在视觉上只是稍微简单一点。
https://stackoverflow.com/questions/31251484
复制相似问题