使用Maven将环境变量传递给Spring Boot应用程序

时间:2020-09-11 15:39:28

标签: spring-boot maven environment-variables yaml

我正在使用Spring Boot isNotHeader

我不想将敏感数据作为True放在配置文件中。所以他们指的是环境变量。

在应用程序的IntelliJ配置设置(在3.2.1部分)上,执行工作正常。

但是,它无法从控制台执行maven:

application.yml

以下是异常详细信息:

Environment variables

这是./mvnw -Ddemo-api-key=all56 -Ddemo-host=https://demo.api spring-boot:run 的摘录:

java.lang.IllegalArgumentException: Not enough variable values available to expand 'demo-host'
        at org.springframework.web.util.UriComponents$VarArgsTemplateVariables.getValue(UriComponents.java:367) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
        at org.springframework.web.util.UriComponents.expandUriComponent(UriComponents.java:262) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
        at org.springframework.web.util.HierarchicalUriComponents$PathSegmentComponent.expand(HierarchicalUriComponents.java:960) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
        at org.springframework.web.util.HierarchicalUriComponents.expandInternal(HierarchicalUriComponents.java:434) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
        at org.springframework.web.util.HierarchicalUriComponents.expandInternal(HierarchicalUriComponents.java:52) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
        at org.springframework.web.util.UriComponents.expand(UriComponents.java:172) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]

如果我将其放在application.yml的较高位置,则效果很好:

car-parks-url: ${demo-host}/cap-ws/getCarParks?apiKey=${demo-api-key}

URL格式正确,并且所有数据都被正确提取。

无法理解使用maven将其作为环境变量传递时遗漏了什么?

1 个答案:

答案 0 :(得分:2)

与以下不同:

java -jar -Ddemo-api-key=all56 -Ddemo-host=https://demo.api myApp.jar

要将环境变量 直接传递到应用程序的地方

如果您这样做:

./mvnw -Ddemo-api-key=all56 \
-Ddemo-host=https://demo.api spring-boot:run

您要将变量传递给 maven任务而不是应用程序

您可以使用:

 ./mvnw  spring-boot:run \
 -Dspring-boot.run.arguments="--demo-host=https://demo.api --demo-api-key=all56"

 ./mvnw  spring-boot:run -Dspring-boot.run.jvmArguments="\
 -Ddemo-host=https://demo.api -Ddemo-api-key=all56"

这些命令指示您如何将这些var传递给Spring Boot应用程序。

其他资源: