J'ai un fichier application.properties avec les valeurs de variable par défaut. Je veux pouvoir changer l’UN d’eux en courant avec mvn spring-boot:run
. J'ai trouvé comment changer le fichier entier, mais je veux seulement changer une ou deux de ces propriétés.
Vous pouvez transmettre des propriétés individuelles sous forme d'arguments de ligne de commande. Par exemple, si vous voulez définir server.port
, vous pouvez effectuer les opérations suivantes lors du lancement d’un fichier jar exécutable:
Java -jar your-app.jar --server.port=8081
Sinon, si vous utilisez mvn spring-boot:run
:
mvn spring-boot:run -Drun.arguments="--server.port=8081"
Vous pouvez également configurer les arguments pour spring-boot:run
dans votre application pom.xml
afin qu’ils ne soient pas toujours spécifiés sur la ligne de commande:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<arguments>
<argument>--server.port=8085</argument>
</arguments>
</configuration>
</plugin>
Pour mettre à jour de petites choses, le plugin Spring Boot 1.X Maven s’appuie sur le --Drun.arguments
Propriété utilisateur Maven mais le plug-in Spring Boot 2.X Maven s’appuie sur le -Dspring-boot.run.arguments
Propriété utilisateur Maven.
Donc pour le printemps 2, vous devez faire:
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8081"
Et si vous devez passer plusieurs arguments, vous devez utiliser ,
comme séparateur et n’utilisez jamais d’espace entre les arguments:
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8081,--foo=bar"
En ce qui concerne la configuration du plug-in maven et la manière de passer l'argument d'un gros jar, cela n'a pas changé.
La très bonne réponse de Andy Wilkinson a donc toujours raison.