Возможно, краткий ответ на ваш вопрос "Нет", но
Я постараюсь дать общий ответ здесь, чтобы уточнить пару вещей
Вы должны различать maven, который является исключительно инструментом сборки, и среду выполнения вашего приложения.
Обычно это выглядит так:
Фаза сборки
Вы звоните в maven, чтобы построить артефакт (ы). Это может быть WAR, JAR, EAR файл или что-то еще.
Как инструмент сборки, maven отвечает за компиляцию вашего исходного кода, тестирование его, если у вас есть тесты для запуска, упаковка скомпилированных классов (отсюда и артефакт jar / war / etc.), И все.
Фаза времени исполнения
После этого вы запускаете приложение на сервере. Здесь начинается ответственность spring / jsp, но в двух словах эта фаза является фазой выполнения, и к тому времени, когда это происходит, вы даже не знаете, что приложение было создано и упаковано maven - это уже не имеет значения. У вас есть артефакт - вы управляете им
Теперь ясно, что профиль maven, который определяет некоторые свойства, является чем-то «релевантным» во время сборки и не распространяется на среду выполнения, поскольку в общем случае их там не будет.
Теперь вы можете локально запускать запуск приложения из maven (например, mvn java:exec
, если вы его используете), и в этом случае вы, вероятно, можете поиграть с параметрами командной строки, но опять-таки, это только для целей локальной разработки, ничего делать с жизнью приложения.
Технически говоря, если вам это абсолютно необходимо, вы можете найти способ сделать это:
Вы также можете создать более сложную сборку, которая будет читать эти свойства в maven (своего рода плагине maven) и генерировать исходный файл с этими свойствами и их значениями, и если это произойдет до того, как все будет упаковано (снова maven) файл будет «запечен в ваш артефакт» вместе с остальным кодом. Так что он будет доступен во время выполнения, потому что Spring может прочитать этот файл свойств.
Настоящий вопрос, который вы должны себе задать, это правильно делать? Обычно ответ здесь «нет»:)