Grails中外部配置中的变量

Grails中外部配置中的变量,grails,config,Grails,Config,我的grails应用程序中有一个外部和内部配置。这是: Config.groovy 我想将test1的值设置为等于grails.server的重写值,但我看到test1的原始值是“grails.server”,而不是外部配置中的重写值 因此,在最后,我从配置文件中获取test1的原始值 例如,“abc.com”而不是外部配置中覆盖的值,即xyz.com。如果您希望test1引用grails.server之类的属性,请执行以下操作: grails { server = 'xyz.com' }

我的grails应用程序中有一个外部和内部配置。这是:

Config.groovy

我想将test1的值设置为等于grails.server的重写值,但我看到test1的原始值是“grails.server”,而不是外部配置中的重写值

因此,在最后,我从配置文件中获取test1的原始值
例如,“abc.com”而不是外部配置中覆盖的值,即xyz.com。

如果您希望test1引用grails.server之类的属性,请执行以下操作:

grails {
   server = 'xyz.com'
}

test {
   test1 = ${grails.server}
}
环绕${}表达式中的任何属性名,它将返回该属性的值。现在,您的问题令人困惑,因为您谈到了重写属性,但不清楚您要重写哪个属性。如果是grails.server,那么这个答案很好。但同样令人困惑的是测试的使用,因为测试是一个环境,但我认为您试图制作一个抽象的示例,它并不意味着环境


更新:您是如何指定外部配置文件的?您使用了grails.config.defaults.locations还是grails.config.locations?如果您使用的grails.config.locations将允许您的外部配置覆盖config.groovy,但如果您使用的是grails.config.defaults.locations,那么config.groovy将覆盖您的外部配置。

测试仅用于显示示例。我会更新这个问题。我将尝试您的解决方案。我已更新了我的答案以更好地反映您的问题。我正在覆盖grails.config.locations我看到“这个问题可能已经在这里有了答案:'在问题的顶部。我以为是你加的。但看起来那是自动生成的我真的不明白投票的关键问题。这个问题没有解决问题的答案。问题的结构也正确。还有什么? grails { server = 'xyz.com' }

testing {
   test1 = ${grails.server}
}
grails {
   server = 'xyz.com'
}

test {
   test1 = ${grails.server}
}