Мы пытаемся установить активные профили, используя аргументы командной строки.
Мы печатаем системное свойство "spring.profiles.active" сразу после запуска.
Локально это работает просто отлично, но на тест-сервере свойство не установлено.
В качестве тестовой среды у нас работает сервер Linux.
Мы используем Java 8 для разработки веб-приложения, с 2.9.2
Мы создаем приложение через jenkins, который для этого вызывает bash-скрипт.
Там мы устанавливаем активные профили приложения, используя системные свойства.
Я встроил некоторые записи сразу после запуска (основной метод первой строки), чтобы напечатать соответствующее свойство. Когда я проверяю это локально, это работает нормально, каждый профиль печатается как задумано.
На тестовом сервере профиль вообще не установлен.
Я попытался изменить профили, добавил пробелы, дважды проверил операторы, чтобы исключить опечатки.
Дополнительная информация: В последнее время мы пытались переместить наше приложение с порта 8443 на 443, что вызвало серьезные проблемы. Нам не хватало прав на использование 1024 и ниже (linux-сервер). Мы вернулись к 8443, пока проблема с правами не будет устранена. С тех пор мы столкнулись с проблемой, упомянутой выше.
#!/bin/bash
CMD_DIR=`dirname $0`
JAR_DIR="$CMD_DIR/../../jars/tool/"
JAR_FILE="$(ls -t $JAR_DIR)"
$ARGS="-Dspring.profiles.active=dummylogin -Dslack.logonly=false -Dslack.channel=xxx"
echo $ARGS
exec java $ARGS -jar $JAR_DIR$JAR_FILE
private static void printActiveProfiles() {
out.println(String.format("Active Spring-profiles: %s", System.getProperty("spring.profiles.active")));
}
Я ожидаю, что в качестве активного профиля был установлен dummylogin.
На самом деле профиль не установлен:
Журнал:
Активные Spring-профили: null