2013-09-19 2 views
3

Я унаследовал проект Grails, который развернут в Tomcat. Я, по сути, должен перепроектировать то, что сделали предыдущие инженеры.Выберите Grails Environment в Tomcat

Мой вопрос, как же Grails выбрать среди одной из сред Grails:

Так Config.groovy существует:

environments 
{ 
    development 
    { 
     . . . 
    } 
    production 
    { 
     . . . 
    }  

} 

Но как в развернутом сервере Tomcat, это сказать «развитие «выбрали« производство »при запуске Tomcat? Я предполагал, что это будет в какой-то контекст или инициализации параметров в web.xml, что-то вроде

<code> 
    <init-param> 
     <param-name>grails.environment</param-name> 
     <param-value>production</param-value> 
    </init-param> 
</code> 

Все Граалей документация предполагает, что вы запускаете

grails war your-selected-environment 

но не дизайн документировать, как именно затрагиваются военные артефакты.

+0

Но, как проверить его Groovy/Grails Tool Suite? – VVB

ответ

0

Окружающая среда выбирается, когда вы строите войну, а не при запуске tomcat. При запуске

grails war 

production среда неявно выбран, но вы можете изменить его в командной строке с -Dgrails.env=development. Проверьте раздел руководства по развертыванию: http://grails.org/doc/2.2.4/guide/single.html#deployingAnApplication

+0

Но это не отвечает на мой вопрос; tomcat запускается с сценами запуска tomcat, а не с grails war your-selected-environment; – igaz

+0

Настройка хранится в 'application.properties' внутри файла войны. Он будет содержать, например, 'Grails.env = production'. – ataylor

+0

спасибо - это именно то, что мне нужно – igaz

7

Если запустить

grails test war 

, например, тогда война построена так, что будет только использовать код в конкретных блоков окружающей среды «тест». Не нужно беспокоиться ни о чем в среде выполнения.

Недостатком является создание отдельной войны для каждой среды.

В качестве альтернативы вы можете просто создать единую войну, а затем установить переменную окружения при запуске tomcat для каждой среды, которая сообщает grails, какие конфигурации выбрать. Вы можете сделать это с помощью установки, например

-Dgrails.env=test 
+0

особенно обратите внимание на порядок аргументов «grails war» ... – billjamesdev

+0

Прямо сейчас, и вот несколько документов по этому поводу: http://grails.org/doc/latest/ref/Command% 20Line/Usage.html – dbrin

+0

Но, как проверить это Groovy/Grails Tool Suite? – VVB

0

Таким образом, вы бы сказать

grails> prod war 

где прод это имя среды. Вы могли бы быть среда под названием пространство и сделать

space war 

Я не видел документы, где вы сможете изменить его после того, как он развернут. В моей WEB-INF папку (взорванного WAR) есть application.properties файл

grails.env=development 
grails.war.deployed=true 
grails.buildScope=war 
app.servlet.version=2.5 

у меня есть сомнения, что это будет работать, но проверить это.

+0

Но, как проверить это Groovy/Grails Tool Suite? – VVB

2

Редактируйте файл окружения tomcat. Для Tomcat 7:

/path/to/apache-tomcat-7.x.x/bin/setenv.sh

и добавьте Grails.окр свойство системы в командной строке

CATALINA_OPTS='-Xms2048m -Xmx8192m -Dgrails.env=dev'; Заменить Dev с окружающей средой, вы хотите

 Смежные вопросы

  • Нет связанных вопросов^_^