2012-03-21 8 views
11

Desidero includere il nome dell'applicazione Grails in alcune delle mie impostazioni di configurazione in grails-app/Config.groovy. Ho provato molti modi senza successo. Per esempio, se ho il seguente nel mio Config.groovy,Come ottenere il nome dell'applicazione Grails in Config.groovy?

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

posso correre queste dichiarazioni in console i 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}" 

con i seguenti risultati.

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

Ci deve essere un modo per ottenere queste informazioni.

risposta

25

Per ottenere l'appName in un file di configurazione che si sta anche con grails.config.locations voi può usare:

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

Grazie. Questo è esattamente ciò di cui ho bisogno. –

+0

Sto consultando questa affermazione. Funziona per me sul graal 2.3.11. Grazie! – Tung

+1

Perfetto è proprio quello di cui ho bisogno. Puoi anche utilizzare grails.util.Metadata.current.getApplicationName() come equivalente – Nico

2

provare questo:

edu.appname1 = appName 

o se si desidera utilizzare come parte di un parametro di configurazione più

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

Grazie. Pensavo di aver provato quello. –

+0

Il mio problema era che non era disponibile in un file che ho incluso tramite 'grails.config.locations'. Lo salverò in una nuova proprietà in 'Config.groovy' e lo userò. –

Problemi correlati