Как было рекомендовано, добавлен процессор весенней загрузки конфигурации, но в RoundDispatcher возникла ошибка NoClassDefFoundError - PullRequest
0 голосов
/ 27 октября 2018

Я работаю над проектом 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.

Может кто-нибудь сказать мне, что здесь происходит?

1 Ответ

0 голосов
/ 12 января 2019

Что происходит:

Вы используете groovy-eclipse-batch / groovy-eclipse-compiler для сборки и получаете ошибку в компиляторе eclipse.https://bugs.eclipse.org/bugs/show_bug.cgi?id=530665 показывает основную причину.Это помечено как исправленное в компиляторе Eclipse 4.8 RC2.К сожалению, в моем собственном исследовании той же проблемы я не смог выяснить, какая версия компилятора eclipse используется в артефактах groovy-eclipse maven (и даже какая должна быть изменена, чтобы выбрать данную версию!)

Извините, сейчас это не очень полезно.Я пока не смог заставить его работать даже с последним из обоих артефактов groovy-eclipse.

Если возможно перенести вашу сборку в gradle или переключиться на плагин gmavenplus (это я и сделал), вы бы увернулись от этой проблемы, потому что в этом случае вам не нужно полагаться на затмение.

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