Я работаю над проектом SpringBoot, и я только что преобразовал его из SpringBoot 1.5 в 2. Я заметил, что у метода bean-класса config (для моего DataSource) с аннотацией @ConfigurarationProperties было предупреждение, в котором говорится:
При использовании @ConfigurationProperties рекомендуется добавить 'spring-boot-configuration-processor' в ваш
classpath для генерации метаданных конфигурации
Итак, я добавил этот артефакт в POM, и это убрало предупреждение, но я не уверен, в чем выгода. Я прочитал приложение, в котором говорилось о «метаданных конфигурации», и до сих пор не уверен, в чем суть.
Хуже того, я обнаружил, что, хотя это изменение не создавало проблем при сборке и тестировании приложения на моем рабочем столе, при запуске сборки на нашем сервере Linux CI произошел сбой со следующим:
[ОШИБКА] ... / package-info.java:
1. ОШИБКА в ... / package-info.java (в строке 0)
/ **
^
Внутренняя ошибка компилятора: java.lang.Exception: java.lang.NoClassDefFoundError: org / springframework / boot / configurationprocessor / metadata / JsonMarshaller в org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDpatpatcher.jDisiscessor 172)
[ОШИБКА] Найдено 1 ошибка и 1 предупреждение.
Затем я прокомментировал ссылку на артефакт, которая вернула предупреждение и исправила мою сборку CI.
Может кто-нибудь сказать мне, что здесь происходит?