覆盖Maven春季启动插件的jvm参数



我的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>

所以我可以通过mvn-spring-boot:run完美地运行应用程序。但是,如果我想覆盖参数,例如"javax.net.ssl.trustStore",该怎么办

mvn spring-boot:run -Djavax.net.ssl.trustStore=<other_location>

但事实并非如此。我也尝试过这个,但没有工作:

mvn -Dspring-boot.run.jvmArguments="-Djavax.net.ssl.trustStore=other_location" spring-boot:run

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

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

<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>

并启动您的应用程序:

mvn -Dspring-boot.run.jvmArguments="-Djavax.net.ssl.trustStore=other_location" spring-boot:run

试试这个:

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Djavax.net.ssl.trustStore=other_location"

文档链接:https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-debug.html

在过去的一些争论中使用了相同的方法。

最新更新