覆盖 Maven spring boot 插件的 jvmArguments

Nav*_*Nav 4 java jvm-arguments maven spring-boot

我的 pomn 中有这个插件配置:

<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <jvmArguments>
                     -Djavax.net.ssl.trustStore=${project.build.outputDirectory}/keystore.jks
                     -Djavax.net.ssl.trustStorePassword=ue90D3v
                     -Djavax.net.ssl.keyStore=${project.build.outputDirectory}/keystore.jks
                     -Djavax.net.ssl.keyStorePassword=ue90D3v
                </jvmArguments>
            </configuration>
        </plugin>
    </plugins>
Run Code Online (Sandbox Code Playgroud)

所以我可以通过 mvn spring-boot:run 完美运行应用程序。但是,如果我想覆盖参数,例如“javax.net.ssl.trustStore”,该怎么办?我希望这个命令有效:

mvn spring-boot:run -Djavax.net.ssl.trustStore=<other_location>
Run Code Online (Sandbox Code Playgroud)

但事实并非如此。我也尝试过这个但不起作用:

mvn -Dspring-boot.run.jvmArguments="-Djavax.net.ssl.trustStore=other_location" spring-boot:run
Run Code Online (Sandbox Code Playgroud)

如果我可以在 pom.xml 中设置 JAVA_OPTS ,这也是一个解决方案。

Y.M*_*.M. 8

面对同样的问题,你可以这样做:

<properties>
  <!-- defined here if you don't use -Dspring-boot.run.jvmArguments-->
  <spring-boot.run.jvmArguments></spring-boot.run.jvmArguments>
</properties>
<build>
<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <jvmArguments>
                 -Djavax.net.ssl.trustStore=${project.build.outputDirectory}/keystore.jks
                 -Djavax.net.ssl.trustStorePassword=ue90D3v
                 -Djavax.net.ssl.keyStore=${project.build.outputDirectory}/keystore.jks
                 -Djavax.net.ssl.keyStorePassword=ue90D3v 
                 ${spring-boot.run.jvmArguments}
            </jvmArguments>
        </configuration>
    </plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

并启动你的应用程序:

mvn -Dspring-boot.run.jvmArguments="-Djavax.net.ssl.trustStore=other_location" spring-boot:run
Run Code Online (Sandbox Code Playgroud)