2012-03-21 46 views
11

我想在我的一些配置設置grails-app/Config.groovy中包含Grails應用程序名稱。我嘗試了很多方法,但都沒有成功。舉例來說,如果我有我的Config.groovy以下,如何獲取Config.groovy中的Grails應用程序名稱?

edu.appname1 = "${grailsApplication.metadata.'app.name'}" 
edu.appname2 = "${application.metadata.'app.name'}" 
edu.appname3 = "${metadata.'app.name'}" 
edu.appname4 = "${app.name}" 

我可以運行在Grails的控制檯這些語句

def edu = grailsApplication.config.edu 
println "${'''${grailsApplication.metadata.'app.name'} -> '''}${edu.appname1}" 
println "${'''${application.metadata.'app.name'}  -> '''}${edu.appname2}" 
println "${'''${metadata.'app.name'}     -> '''}${edu.appname3}" 
println "${'''${app.name}        -> '''}${edu.appname4}" 

,結果如下。

${grailsApplication.metadata.'app.name'} -> [:] 
${application.metadata.'app.name'}  -> [:] 
${metadata.'app.name'}     -> [:] 
${app.name}        -> [:] 

必須有某種方式來獲取此信息。

回答

25

爲了讓應用程序的名字在你包括grails.config.locations配置文件你可以使用:

appName = grails.util.Metadata.current.'app.name' 
+0

謝謝。這正是我需要的。 – 2012-03-21 18:02:21

+0

我使用googling這個聲明。它適用於grails 2.3.11。謝謝! – Tung 2016-03-21 13:49:41

+1

完美的是我所需要的。您也可以使用grails.util.Metadata.current.getApplicationName()作爲等價物 – Nico 2016-09-21 13:03:17

2

試試這個:

edu.appname1 = appName 

,或者如果你想爲一個較長的配置參數的一部分使用

edu.appname1 = "something.$appName.else" 
+0

謝謝。我以爲我曾試過那個。 – 2012-03-21 17:24:28

+0

我的問題是,它在我通過'grails.config.locations'包含的文件中不可用。我將它保存到'Config.groovy'中的一個新屬性中並使用它。 – 2012-03-21 17:39:02

相關問題