2010-05-19 72 views
2

似乎只有grails.serverURL和grails.path才能根據環境配置進行識別。 bla和foo被忽略,不能在應用程序中使用 任何人都可以解決這個問題,並提供一種方法來獲得每個環境配置的bla和foo?如何在grails中擴展每個環境配置

environments { 
    production { 
     grails.serverURL = "http://alpha.foo.de" 
     grails.path = "" 
     bla = "text" 
     foo= "word" 
    } 
    test { 
     grails.serverURL = "http://test.foo.de" 
     grails.path = "" 
     bla = "othertext" 
     foo= "otherword" 
    } 
} 
+1

如何訪問blah和foo?你可以發佈一些代碼,這些屬性沒有返回任何內容? – leebutts 2010-05-19 21:48:36

+0

在答案中看到上面的代碼 – skurt 2010-05-20 11:25:57

+0

你如何從服務中訪問這個blah和foo?它不適用於grailsApplication.config.blah ... – user2427 2010-06-17 21:22:54

回答

0

所有的ConfigSlurper變量都受環境的限制。你在上面顯示的應該可以正常工作。

當您使用grails run-app時,默認情況下您在development環境中運行。這可能是你的問題嗎?

0

嘗試...

> grails prod run-app 

這應該給你BLA(文字)和Foo(字)

> grails test run-app 

這應該給你BLA(othertext)和Foo(otherword)

0

Config.groovy設置

environments { 
    development { 
     grails.serverURL = "http://alpha.foo.de" 
     grails.path = "/bar" 
     staticServerURL = "http://static.foo.de" 
     staticPath = "/static" 
    } 
} 

源代碼index.gsp中

${grailsApplication.config.staticServerURL}a 
${grailsApplication.config.staticPath}b 
${grailsApplication.config.grails.serverURL}c 
${grailsApplication.config.grails.path}d 

使用Grails啓動時是什麼打印出來運行的應用程序

a b http://alpha.foo.dec /bard 
0

檢查您Config.groovy中,你必須對環境的進口

import grails.util.Environment 

否則Environment.current爲空。

2

由於Grails 3.0可以使用Groovy或YAML語法。新的主應用程序配置文件是/conf/application.yml,但您可以繼續使用定義/conf/application.groovy文件的現有groovy配置。

這是數據源定義的每環境(在YAML)的示例:

environments: 
    development: 
     dataSource: 
      dbCreate: create-drop 
      url: jdbc:h2:mem:devDb 
    test: 
     dataSource: 
      dbCreate: update 
      url: jdbc:h2:mem:testDb 
    production: 
     dataSource: 
      dbCreate: update 
      url: jdbc:h2:prodDb 
    myenv: 
     dataSource: 
      dbCreate: update 
      url: jdbc:h2:myenvDb 

要運行一個Grails在特定環境中命令可以使用:

grails [environment] [command name] 

要針對不同的環境中從開發,測試和產品你可以使用:

grails -Dgrails.env=myenv run-app 

查看grails environment documentationthis example application瞭解更多信息。