我的grails应用程序中有一个外部和内部配置。这是:
Config.groovy
grails { server = 'abc.com' } testing { test1 = ${grails.server} }
外部配置
grails {
server = 'xyz.com'
}
testing {
test1 = ${grails.server}
}
我想将test1
的值设置为等于grails.server
的重写值,但我看到的是test1
,原始值为'grails.server'是已分配,而不是外部配置中的重写值。
所以最后我得到test1
从配置文件中获取的原始值
ie.'abc.com'而不是外部配置中的值,即xyz.com
。
答案 0 :(得分:0)
如果您希望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会覆盖您的外部配置。