Spring-Boot 2.3.1 -Dspring-boot.run.arguments 不起作用

Posted

技术标签:

【中文标题】Spring-Boot 2.3.1 -Dspring-boot.run.arguments 不起作用【英文标题】:Spring-Boot 2.3.1 -Dspring-boot.run.arguments not working 【发布时间】:2020-11-06 01:10:23 【问题描述】:

我一直在使用 mvn spring-boot:run 命令和 -Dspring-boot.run.arguments 将参数/变量传递给我们的 spring-boot 应用程序,例如:

mvn spring-boot:run -Dspring-boot.run.arguments=--jwt.validateExp=false,--jwt.skipValidation=true

在应用程序中,我曾经使用注释读取参数值:@Value("$jwt.skipValidation")。这在 spring-boot 2.2.1 上运行良好。

当我升级到 spring-boot 2.3.1 时,它停止了工作。有什么建议吗?

【问题讨论】:

查看docs.spring.io/spring-boot/docs/2.3.1.RELEASE/maven-plugin/… 嗨@SimonMartinelli,根据 maven-plugin 文档,我尝试了以下操作,但这也没有用: mvn spring-boot:run -Dspring-boot.run.arguments="jwt .validateExp=false jwt.skipValidation=true" 野外猜测。你可以试试 -Drun.arguments 这有效:-Dspring-boot.run.arguments="--jwt.validateExp=false --jwt.skipValidation=true" 感谢您的建议。 这在他们的变更日志中的什么地方? ? ? ? github.com/spring-projects/spring-boot/wiki/… 【参考方案1】:

将 --jwt.validateExp=false,--jwt.skipValidation=true 更改为“--jwt.validateExp=false --jwt.skipValidation=true”,对我有用。

mvn spring-boot:run -Dspring-boot.run.arguments="--jwt.validateExp=false --jwt.skipValidation=true"

因此在参数周围放置双引号 (""),并提供空格来代替逗号 (,)。

【讨论】:

【参考方案2】:

我使用的是 spring.boot 2.4.2,为了解决这个问题,我用空格分隔参数并将值放在双引号之间。

mvn spring-boot:run -Dspring-boot.run.arguments="--jwt.validateExp=false --jwt.skipValidation=true"

【讨论】:

以上是关于Spring-Boot 2.3.1 -Dspring-boot.run.arguments 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

spring-boot系列:初试spring-boot

Spring-boot01

Spring-boot01

spring-boot:我可以修复 spring-boot 2 中的下一个错误吗?

使用 spring-boot:run 时是不是可以使用 spring-boot 命令行属性?

第二个spring-boot程序