2012-03-21 31 views
11

Yapılandırma ayarlarımın bazılarında Grails uygulama adını grails-app/Config.groovy'a eklemek istiyorum. Başarısız birçok yolu denedim. Ben varsa Örneğin,Config.groovy içinde Grails uygulama adı nasıl alınır?

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

, benim Config.groovy aşağıdaki Grails konsolunda bu ifadeleri aşağıdaki sonuçlarla

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

çalıştırabilirsiniz.

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

Bu bilgileri edinmenin bir yolu olmalı.

cevap

25

Eğer grails.config.locations ile dahil olduğunuz bir yapılandırma dosyasında AppName almak için Kullanılabilir:

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

Teşekkürler. Tam olarak ihtiyacım olan şey bu. –

+0

Bu ifadeyi kullanıyorum. Bu benim için 2.3.11. Teşekkürler! – Tung

+1

Mükemmel, tam ihtiyacım olan şey bu. Grails.util.Metadata.current.getApplicationName() öğesini eşdeğer olarak da kullanabilirsiniz. – Nico

2

bu deneyin:

edu.appname1 = appName 

veya daha uzun bir yapılandırma parametresi bir parçası olarak kullanmak istiyorsanız

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

Teşekkürler. Bunu denediğimi düşündüm. –

+0

Sorunum, "grails.config.locations" ile eklediğim bir dosyada mevcut olmamasıydı. Bunu Config.groovy'deki yeni bir mülke kaydedeceğim ve kullanacağım. –

İlgili konular