You need to enable JavaScript to run this app. 如何在Maven命令行中为Spring Boot应用正确传递VM选项参数
优惠活动
大模型
产品
解决方案
定价
更多

如何在Maven命令行中为Spring Boot应用正确传递VM选项参数

核心原因

mvn -Djasypt.encryptor.password=xx spring-boot:run 传参失效的本质是:Maven命令行直接附加的-D参数,只会传递给Maven自身的运行进程,不会自动透传给spring-boot:run插件启动的Spring Boot应用子进程。
你之前在IDEA启动配置中写的VM参数,是直接附加给Spring Boot应用主进程的,因此能被@Value正常读取。

正确传参方式

使用Spring Boot Maven插件专用的spring-boot.run.jvmArguments参数传递JVM系统属性,命令写法如下:

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Djasypt.encryptor.password=xxx"

该参数会被插件直接注入到启动的应用Java进程中,和IDEA中配置VM选项的效果完全一致,@Value可以正常读取占位符。

传参场景澄清

VM选项(包括-D开头的JVM系统属性、-X开头的JVM调优参数等)并非只能在java -jar命令中附加,常见合法传参场景包括:

  • 直接启动可执行Jar包:java -Djasypt.encryptor.password=xxx -jar your-app.jar
  • IDE类工具启动:在启动配置的「VM Options」栏填写参数
  • Maven执行spring-boot:run:通过上述jvmArguments参数传递

避坑提醒:不要混淆两个Spring Boot Maven插件的传参参数

  • spring-boot.run.jvmArguments:传递JVM层面参数(如系统属性、堆内存配置)
  • spring-boot.run.arguments:传递Spring Boot应用级启动参数(如--server.port=8081)

内容的提问来源于stack exchange,提问作者maciejka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.13 00:36:04