如何扩展grails中的每个环境配置

时间:2010-05-19 18:31:25

标签: grails environment config

似乎只有grails.serverURL和grails.path被识别为环境混淆。 bla和foo被忽略,无法在应用程序中使用 任何人都可以解决这个问题并提供一种方法来为每个环境配置bla和foo吗?

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

5 个答案:

答案 0 :(得分: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]

要定位与dev,test和prod不同的环境,您可以使用:

grails -Dgrails.env=myenv run-app

有关详细信息,请参阅grails environment documentationthis example application

答案 1 :(得分:0)

所有ConfigSlurper变量都由环境确定范围。你上面所展示的应该可以正常工作。

使用grails run-app时,默认情况下您在development环境中运行。这可能是你的问题吗?

答案 2 :(得分:0)

...试

> grails prod run-app

这应该给你bla(文本)和foo(word)

> grails test run-app

这应该给你bla(othertext)和foo(otherword)

答案 3 :(得分: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 run-app

启动时打印出来的内容
a b http://alpha.foo.dec /bard

答案 4 :(得分:0)

在Config.groovy中检查您是否拥有环境导入

import grails.util.Environment

否则Environment.current为空。