Grails 4.x: создание WAR с пользовательской средой всегда находится в стадии разработки

Я не могу заставить мою пользовательскую среду работать под Tomcat. Он всегда загружает профиль разработки.

Я создаю WAR со следующим в Grails 4.0.5:

grails -Dgrails.env=qa war 

Полученный файл grails.build.info выглядит правильно:

info.app.version=2.0.7
info.app.name=myapp
grails.env=qa
info.app.grailsVersion=4.0.5

Однако, когда я бросаю его в Tomcat 8 и запускаю, я получаю следующее:

 [ost-startStop-1] com.myapp.ApplicationLoader        : The following profiles are active: development

Однако автономный запуск работает просто отлично:

./gradlew -Dgrails.env=qa bootRun 

person Mike Sickler    schedule 12.02.2021    source источник


Ответы (1)


grails.util.Environment определяет ряд предварительно настроенные среды.

Environment APPLICATION
Environment CUSTOM
Environment DEVELOPMENT
Environment PRODUCTION
Environment TEST

В application.yml мы получаем предварительно настроенные среды development, test и production. Поэтому, если мы хотим добавить пользовательские среды, мы добавляем их аналогичным образом. В вашем случае это будет qa.

С помощью командной строки Grails мы можем выполнить любую команду в контексте определенной среды. Формат:

grails [environment] [command name]

Предположим, вы хотите создать WAR для среды test, которую вы запустили:

grails test war

Для других сред вы можете передать переменную grails.env любой команде:

grails -Dgrails.env=UAT run-app

Я создаю WAR со следующим в Grails 4.0.5:

grails -Dgrails.env=qa война

Да, все выглядит хорошо в соответствии с документацией и конфигурацией Grails.

Я создал приложение POC для того же с Grails 4.0.5, а также загрузил внешний tomcat apache-tomcat-8.5.63.

Tomcat и Grails

Мой application.yml с qa ENV:

qa env

Однако автономный запуск работает просто отлично:

./gradlew -Dgrails.env=qa bootRun

да. Это также отлично работает. Итак, теперь я создал военный файл с grails -Dgrails.env=qa war Затем я запустил свой tomcat и закинул свой файл poc-app-0.1.war в tomcat.

введите здесь описание изображения

когда tomcat развернул/извлек мою войну, ввел локальный URL-адрес в браузер.

введите здесь описание изображения

Вы можете видеть на изображении выше, Окружающая среда qa

Итак, все работает, когда я перешел к env при создании войны.

Я тестировал несколько сред, как предварительно настроенных, так и настраиваемых. Но не возникло никаких проблем, таких как создание войны для qa и запуск dev.

Также я тестировал java -jar poc-app-0.1.war, и он работает в той же среде, что и мы.

Сведения о приложении: детали приложения

и версия tomcat apache-tomcat-8.5.63

Это может быть проблема с некоторыми версиями или конфигурацией вашего приложения.

Пожалуйста, перейдите по этой ссылке моего poc. Не могли бы вы попытаться создать войну и развернуть ее таким же образом на своем коте и дайте мне знать.

Если у вас все еще возникают проблемы, поделитесь своим минимальным кодом или poc.

Даже у меня есть еще одна похожая проблема в репозитории Grails, пожалуйста, ссылка это.

Я просмотрел множество документации и ссылок, но до сих пор не смог воспроизвести вашу проблему.

Ссылки:

person Rahul Mahadik    schedule 28.02.2021