【发布时间】:2020-06-04 09:24:58
【问题描述】:
我正在尝试在调试模式下运行我的一个微服务。 为此,我将 jvmArguments 添加到启动应用程序的命令中。
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" -Dspring.profiles.active="dev" -DAUTH0_CLIENT_ID="somevalue123" -DAUTH0_CLIENT_SECRET="somevalue123" -DACMS_CRYPTO_KEY="somevalue123" -DACMS_NODE_NAME="n/a" -DACMS_POD_IP="n/a" -DACMS_POD_NAMESPACE="n/a" -DACMS_POD_NAME="n/a"
当我使用 .yml 文件来提供 client_id、client_secret 和 crypto_key 时,我也需要传递它们。这是配置文件:
acms:
crypto:
key: ${ACMS_CRYPTO_KEY}
node:
name: ${ACMS_NODE_NAME}
pod:
name: ${ACMS_POD_NAME}
namespace: ${ACMS_POD_NAMESPACE}
ip: ${ACMS_POD_IP}
env:
info:
enabled: false
auth0:
clientId: ${AUTH0_CLIENT_ID}
clientSecret: ${AUTH0_CLIENT_SECRET}
没有调试模式一切正常。但是当我添加
-Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
我收到错误:应用程序运行失败
org.springframework.beans.factory.BeanCreationException: 错误 创建名为“acmsConfig”的bean:注入自动装配 依赖失败;嵌套异常是 java.lang.IllegalArgumentException: 无法解析占位符 值“${ACMS_CRYPTO_KEY}”中的“ACMS_CRYPTO_KEY”
那么如何在不破坏其他参数的情况下添加调试模式命令?
【问题讨论】:
-
尝试在 jvmArguments 部分中包含所有 java 参数,而不是使用 -D 单独提及它们
-
为什么不在 IDE 内部运行?
-
@SivaKumar 你是对的,我在里面添加了所有参数并且它起作用了!谢谢
标签: spring-boot maven yaml