Spring: переопределение одного application.property из командной строки
У меня есть файл application.properties со значениями по умолчанию. Я хочу изменить один из них при работе с mvn spring-boot:run
. Я нашел, как изменить весь файл, но я хочу изменить одно или два из этих свойств.
Ответы
Ответ 1
Вы можете передать индивидуальные свойства в качестве аргументов командной строки. Например, если вы хотите установить server.port
, вы можете сделать следующее при запуске исполняемого банку:
java -jar your-app.jar --server.port=8081
В качестве альтернативы, если вы используете mvn spring-boot:run
:
mvn spring-boot:run -Drun.arguments="--server.port=8081"
Вы также можете настроить аргументы для spring-boot:run
в своем приложении pom.xml
, чтобы их не нужно указывать в командной строке каждый раз:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<arguments>
<argument>--server.port=8085</argument>
</arguments>
</configuration>
</plugin>
Ответ 2
Чтобы обновить мелочи, плагин Spring boot 1.X Maven использует пользовательское свойство --Drun.arguments
Maven, а плагин Spring Boot 2.X Maven использует пользовательское свойство -Dspring-boot.run.arguments
Maven.
Поэтому для Spring 2 вам нужно сделать:
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8081"
И если вам нужно передать несколько аргументов, вы должны использовать ,
в качестве разделителя и никогда не использовать пробелы между аргументами:
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8081,--foo=bar"
Что касается конфигурации плагина maven и способа передачи аргумента из толстой банки, то он не изменился.
Так что очень хороший ответ энди Уилкинсона все еще правильный.