Как расширить конфигурацию среды в Grails - PullRequest
3 голосов
/ 19 мая 2010

Кажется, что только grails.serverURL и grails.path распознаются в соответствии с конфигурациями среды. бла и фу игнорируются и не могут быть использованы в приложении Кто-нибудь может решить эту проблему и предоставить способ настройки 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 ]

2 голосов
/ 27 августа 2015

Начиная с Grails 3.0, можно использовать синтаксис Groovy или YAML. Новый основной файл конфигурации приложения - /conf/application.yml, но вы можете продолжать использовать существующую конфигурацию groovy, определяющую файл /conf/application.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 или в этом примере приложения .

0 голосов
/ 20 июня 2011

Проверьте в вашем Config.groovy, что у вас есть импорт для окружающей среды

import grails.util.Environment

В противном случае Environment.current пуст.

0 голосов
/ 20 мая 2010

Try ...

> grails prod run-app

Это должно дать вам bla (текст) и foo (слово)

> grails test run-app

Это должно дать вам бла (другой текст) и фу (другое слово)

0 голосов
/ 20 мая 2010

Конфиг.гроовая настройка

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
0 голосов
/ 20 мая 2010

Все переменные ConfigSlurper ограничены средой. То, что вы показали выше, должно работать нормально.

Когда вы используете grails run-app, по умолчанию вы работаете в среде development. Может ли это быть вашей проблемой?

...