gpt4 book ai didi

java - 由于在应用程序属性中使用占位符,无法构建项目

转载 作者:行者123 更新时间:2023-12-02 10:27:44 27 4
gpt4 key购买 nike

案例:我想构建稍后可以在 kubernetes 集群 中运行的镜像。在 application.properties 文件中使用占位符来稍后在部署描述中设置这些值似乎很常见。

我的application.properties看起来像这样:

...
spring.datasource.continueOnError=true
spring.datasource.initialization-mode=embedded
catalogservice.baseurl=http://${CATALOG_SERVICE_ADDRESS}:${CATALOG_SERVICE_PORT}
spring.application.name=cartservice
...

我尝试使用

访问这些值
@Value("${catalogservice.baseurl}")
String baseUrl;

当我尝试构建项目时,我收到此异常:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'catalogRequestComponent': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'CATALOG_SERVICE_ADDRESS' in value "http://${CATALOG_SERVICE_ADDRESS}:${CATALOG_SERVICE_PORT}" at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:380) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1378) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:575) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846) ~[spring-beans-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863) ~[spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context- ...

我用谷歌搜索了很多,但只找到了ConfigMaps,但这些是为了稍后注入(inject)值。然而,当我创建 kubernetes ConfigMap 时,该项目将无法构建,还是我错了?我希望在创建集群和其他所有内容之前,我需要在第一步创建图像。

我如何传递我的值(value)观

kubernetes 部署脚本的片段:

spec:
containers:
- name: myapp
image: myimage
ports:
- containerPort: 8080
env:
- name: CATALOG_SERVICE_ADDRESS <--
valueFrom:
configMapKeyRef:
name: catalogmap
key: catalog-address
...

这些值存储在 ConfigMap 中:

apiVersion: v1
kind: ConfigMap
metadata:
name: catalogmap
data:
catalog-address: 192.168.178.10

最佳答案

所有功劳均归功于@M。迪努姆

运行mvn install -DskipTests解决了我的所有问题。

关于java - 由于在应用程序属性中使用占位符,无法构建项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53803223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com