Невозможно построить проект из-за использования заполнителей в свойствах приложения - PullRequest
0 голосов
/ 16 декабря 2018

Случай: я хочу создать образы, которые я могу запустить в kubernetes cluster позже.Кажется очень распространенным использование заполнителей в файле application.properties для установки этих значений в описании развертывания позже.

My application.properties выглядит следующим образом:

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

Iпопробуйте получить доступ к этим значениям, используя

@Value("${catalogservice.baseurl}")
String baseUrl;

Когда я пытаюсь построить проект, я получаю следующее исключение:

org.springframework.beans.factory.BeanCreationException: Ошибка при создании компонента сname 'catalogRequestComponent': не удалось внедрить автонастройки зависимостей;вложенное исключение - java.lang.IllegalArgumentException: не удалось разрешить заполнитель 'CATALOG_SERVICE_ADDRESS' в значении "http://${CATALOG_SERVICE_ADDRESS}:${CATALOG_SERVICE_PORT}" в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperno [-процесса] -процессов.2.RELEASE.jar: 5.1.2.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1378) ~ [spring-beans-5.1E. 5.1.jar2.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:575) ~ [spring-beans-5.1.2.RELEASE.jar: 5.1.graf илиbeans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:498) ~ [spring-beans-5.1.2.RELEASE.jar: 5.1.2.RELEASE] в org.springframework.sula.BeanFact$ doGetBean $ 0 (AbstractBeanFactory.java:320) ~ [spring-beans-5.1.2.RELEASE.jar: 5.1.2.RELEASE] в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222) ~ [spring-beans-5.1.2.RELEASE.jar: 5.1.2.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318) ~ [spring-beans-5.1.2.RELEASE.jar: 5.1.2.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199) ~ [spring-beans-5.1.2.RELEASE.jar: 5.1.2.RELEASE] в org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:846) ~ [spring-beans-5.1.2.RELEASE.jar: 5.1.2.RELEASE] в org.springframework.context.support.AtextApplicationInjava: 863) ~ [spring-context-5.1.2.RELEASE.jar: 5.1.2.RELEASE] в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java: 546) ~ [spring-context- ...

Я гуглил лоты, но нашел только ConfigMaps, но они должны ввести значения позже.Тем не менее, проект не будет построен, когда я создаю kubernetes ConfigMap, или я ошибаюсь ?Я ожидаю, что мне нужно создать изображения на самом первом шаге, до создания кластера и всего остального.

Как передать мои значения

Фрагментkubernetes deployment script:

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

1 Ответ

0 голосов
/ 16 декабря 2018

Все кредиты @M.Deinum

Запуск mvn install -DskipTests решает все мои проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...