Spring:从命令行重写一个 application.property

2022-08-31 10:37:18

我有一个具有默认变量值的 application.properties 文件。我希望能够在与.我找到了如何更改整个文件的方法,但我只想更改其中的一两个属性。mvn spring-boot:run


答案 1

可以将各个属性作为命令行参数传入。例如,如果要设置 ,则可以在启动可执行 jar 时执行以下操作:server.port

java -jar your-app.jar --server.port=8081

或者,如果您与 Spring boot 2.x 一起使用:mvn spring-boot:run

mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8081"

或者,如果您使用的是 Spring Boot 1.x:

mvn spring-boot:run -Drun.arguments="--server.port=8081"

您还可以在应用程序中配置 参数,这样就不必每次都在命令行上指定它们:spring-boot:runpom.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 插件依赖于 Maven 用户属性,但 Spring Boot 2.X Maven 插件依赖于 Maven 用户属性。--Drun.arguments-Dspring-boot.run.arguments

所以对于春季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插件配置以及从胖罐中传递参数的方式,它没有改变。
所以安迪·威尔金森(Andy Wilkinson)的回答仍然是正确的。


推荐