Как настроить свойства системы для конкретной среды с помощью AppAssembler?

У меня есть приложение, которое требует от меня установки системного свойства во время запуска, и это свойство должно быть разным в каждой среде (то есть одно значение в Dev, другое значение в Prod).

Это похоже на другой вопрос без ответа, но этот вопрос задается конкретно о демонах, и мы используем программные сценарии. Решение может быть таким же, хотя я нашел подсказки, что для демонов JSW может быть специальная обработка. Шаблон Unix имеет заполнитель для @ENV_SETUP@и в документации сказано, что environmentSetupFileName предназначено только для JSW. Я хотел бы рассмотреть возможность использования environmentSetupFileName, но я не могу найти больше информации о том, как его использовать или как получить другие скрипты в каталоге bin, где environmentSetupFileName ожидает их.

Кажется, это обычная проблема, и я удивлен, что найти ответ не так просто. Как я могу установить специфичные для среды системные свойства с AppAssembler?

2 ответа

Вы можете поместить переменные окружения в extraJvmArguments, что-то вроде

<extraJvmArguments>-Dapp.contextPath=${APP_CONTEXT_PATH}</extraJvmArguments>

Поскольку APP_CONTEXT_PATH не может быть разрешен во время упаковки, он останется в этой форме в сценарии, сгенерированном appassembler.

Затем просто установите эту переменную env во время развертывания. Это очень удобно, если вы используете докер.

Сначала я должен сказать, что ваше предположение о том, что файл установки среды предназначен только для JSW, просто неверно. Док говорит:

Файл установки в $BASEDIR/bin вызывается перед выполнением.

Примечание: только для платформы jsw. Если этот необязательный файл среды также устанавливает переменную WRAPPER_CONF_OVERRIDES, он будет передан в аргументы командной строки собственного средства запуска JSW для переопределения свойств wrapper.conf. См. http://wrapper.tanukisoftware.com/doc/english/props-command-line.html для получения подробной информации.

Понятие JSW относится только к заметке, что означает, что вы можете определить специальные переменные для переопределения файлов конфигурации оболочки. Я думаю, что это должно быть улучшено ( создал билет для этого).

Определение файла установки среды означает только то, что сгенерированные скрипты будут вызывать данный файл установки. Если вы хотите добавить другие файлы в файл bin, то это ваша очередь.

Кроме того, если вы правильно понимаете свое требование, вам нужно создать разные пакеты Dev, Prod и т. Д., Где значения будут разными. Это означает, что вам нужно создать пакет для Dev и пакет для Prod. Это означает несколько исполнений для appassembler-maven-plugin и т. Д. И может быть maven-assembly-plugin для создания соответствующего архива результата.

Другие вопросы по тегам