Мы используем системные свойства для установки свойства на каждом сервере приложений, которое позволяет приложению определять, запущено ли оно на live или dev.Это работает лучше всего, если у вас есть контроль над этими средами, что означает, что вы можете стандартизировать соглашения об именах и т. Д.
Мы используем Tomcat, и сценарии запуска и завершения работы были изменены, чтобы добавить некоторые дополнительные свойства в JVM.Например:
JVM_OPTS="-Dfuturemedium.javalogs=/usr/share/tomcat_a/logs/ \
-Dfuturemedium.server.development=false \
-Dfuturemedium.smtp.server=localhost"
Это означает, что специфичные для среды свойства берутся в руки каждого отдельного разработчика и передаются в саму среду, где они могут контролироваться системным администратором, и не дублируются в файлах сборки.и т. д.
Затем мы можем получить доступ к этим свойствам в коде через:
boolean dev = Boolean.parseBoolean(System.getProperty("futuremedium.server.development", "false"));
, чтобы условно выполнить какое-либо действие в зависимости от того, является ли оно живым или разработанным.Или в log4j.properties мы можем использовать:
log4j.appender.myapplication_file.File=${futuremedium.javalogs}myapplication.log
Достаточно просто указать эти же свойства в командной строке для любых приложений CLI, чтобы он был достаточно прозрачным внутри или снаружи контейнера.
Не уверен, какую IDE вы используете, но если вы запускаете сервер приложений внутри него, то должна быть возможность управлять этими дополнительными свойствами также через IDE.Для Tomcat внутри Netbeans перейдите в Инструменты -> Серверы -> Tomcat -> Платформа -> Параметры виртуальной машины