Как создать собственную среду в Grails? - PullRequest
13 голосов
/ 16 марта 2011

grails.util.Environment , определяет количество предварительно сконфигурированных сред

  • РАЗРАБОТКА
  • ПРОИЗВОДСТВО
  • ТЕСТ
  • CUSTOM

При запуске команды Grails используемую среду можно указать с помощью флага -Denv, например grails run-app -Denv=test.Вы также можете указать блок кода, специфичный для определенной среды, используя замыкания, такие как:

environments {
    production {
        grails.serverURL = "http://www.changeme.com"
    }
    development {
        grails.serverURL = "http://localhost:8080/${appName}"
    }
    test {
        grails.serverURL = "http://localhost:8080/${appName}"
    }
}

Эти замыкания, зависящие от среды, можно использовать в Bootstrap.groovy и Config.groovy, в других местах?

Кроме того, могу ли я определить свое собственное окружение, например, PRE_PRODUCTION, чтобы оно работало с замыканиями выше и флагом -Denv?

Наконец, могусреда CUSTOM будет использоваться с флагом -Denv?

Ответы [ 3 ]

17 голосов
/ 16 марта 2011

Эти специфичные для окружающей среды крышки можно использовать в Bootstrap.groovy и Config.groovy, есть ли другие места?

Я так не думаю ... В других местах вам нужно будет использовать Универсальное выполнение для каждой среды блок

Environment.executeForCurrentEnvironment {
    production {
        // do something in production
    }
    development {
        // do something only in development
    }
    pre_production {
        // do something for your custom environment
    }
}

Кроме того, могу ли я определить мое собственное окружение, например PRE_PRODUCTION, чтобы он работал с крышками выше и -Denv флаг

Да, вы можете просто объявить -Dgrails.env=pre_production и включить блок pre_production в Bootstrap.groovy или Config.groovy (или в пользовательский блок grails.util.Environment, как указано выше)

1020 * редактировать *

Как вы можете видеть в источнике Grails для Environment , этот тип пользовательской среды будет перечислять Environment.CUSTOM, а затем в блоке Environment.executeForCurrentEnvironment будет проверять CUSTOM и название пользовательской среды

4 голосов
/ 08 октября 2012

Если вы создаете пользовательскую среду, вы можете использовать ее везде, где используется блок environments {}. Например, в дополнение к Bootstrap.groovy и Config.groovy вы также можете использовать его в DataSource.groovy и даже в других файлах конфигурации, таких как Searchable.groovy.

Кроме того, я верю

Environment.currentEnvironment.name вернет 'pre_production' в вашем случае.

1 голос
/ 09 июля 2015

-Dgrails.env = pre_production

подробнее здесь https://grails.org/wiki/Environments

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...