IntelliJ IDEA не может найти сгенерированный файл метаданных конфигурацииJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 IntelliJ IDEA не может найти сгенерированный файл метаданных конфигурации

Сообщение Anonymous »

В моем проекте я использую Spring-boot-configuration-processor для генерации метаданных конфигурации, которые могут быть полезны при настройке полей в классах с пометкой @ConfigurationProperties из файлов .properties.В качестве системы сборки я использую Gradle.
Конфигурация выглядит так:

Код: Выделить всё

@Configuration
@ConfigurationProperties(prefix = "user-config")
public class UserSettings {
/**
* User name.
*/
private String name;

// getters & setters
}
И я импортирую зависимость Spring-boot-configuration-processor в Gradle следующим образом:

Код: Выделить всё

annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-configuration-processor'
Проблема в том, что IntelliJ IDEA не может найти сгенерированный файл Spring-configuration-metadata.json, который находится в /build/classes/java/main/META- INF.
Я провел небольшое исследование и обнаружил, что IDEA использует путь out/production/classes для вывода продукции, а Gradle использует build/classes/java/ main.
Затем я пришел к этому вопросу SO и нашел решение: https://stackoverflow.com/a/55516113/8521177. Как указано там, есть два решения:
  • Настроить процессор аннотаций Spring Boot вручную в IDEA (что неприемлемо, поскольку это заставит всех, кто работает в проект для этого)
  • Установите выходной путь IDEA таким же, как путь Gradle, как указано в этом ответе: https://stackoverflow.com/a/46420842/8521177. Затем IDEA найдет сгенерированный файл метаданных Spring-configuration-metadata.json.
И другое решение — поместить сгенерированный файл в src/ main/resources/META-INF вручную и разверните приложение с файлом в этой папке.
Второе решение сработало, но затем в том же ответе я нашел этот комментарий - Intellij - установить путь вывода по умолчанию для вывода gradle, что означает, что идея gradle устарела и в IDEA следует использовать опцию «делегировать». Я включил эту опцию, и теперь IDEA создает выходные данные в той же папке, что и Gradle, но IDEA снова не может найти сгенерированный файл метаданных, поскольку путь вывода снова установлен на out/.
Итак, каково правильное решение, чтобы IDEA распознала этот сгенерированный файл?
UPD: я использую IntelliJ IDEA 2019.1.3 (Ultimate Edition), Gradle 5.4.1, Spring Boot 2.1 .5.

Подробнее здесь: https://stackoverflow.com/questions/564 ... adata-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»