2012-03-21 25 views
11

Tôi muốn bao gồm tên ứng dụng Grails trong một số cài đặt cấu hình của tôi trong grails-app/Config.groovy. Tôi đã thử nhiều cách mà không thành công. Ví dụ, nếu tôi có điều sau đây trong Config.groovy tôi,Cách lấy tên ứng dụng Grails trong Config.groovy?

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

tôi có thể chạy các báo cáo trong Grails console

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

với kết quả như sau.

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

Phải có cách nào đó để nhận thông tin này.

Trả lời

25

Để có được AppName trong một tập tin cấu hình mà bạn đang kể với grails.config.locations bạn có thể sử dụng:

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

Cảm ơn. Đó chính xác là những gì tôi cần. –

+0

Tôi đang googling tuyên bố này. Nó hoạt động cho tôi trên các loại đá 2.3.11. Cảm ơn! – Tung

+1

Hoàn hảo nó chỉ là những gì tôi cần. Bạn cũng có thể sử dụng grails.util.Metadata.current.getApplicationName() làm tương đương – Nico

2

thử điều này:

edu.appname1 = appName 

hoặc nếu bạn muốn sử dụng như một phần của một tham số cấu hình còn

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

Cảm ơn. Tôi nghĩ tôi đã thử cái đó. –

+0

Vấn đề của tôi là nó không có sẵn trong một tập tin tôi đưa vào thông qua 'grails.config.locations'. Tôi sẽ lưu nó vào một thuộc tính mới trong 'Config.groovy' và sử dụng nó. –

Các vấn đề liên quan