Конфигурация выглядит так:
Код: Выделить всё
@Configuration
@ConfigurationProperties(prefix = "user-config")
public class UserSettings {
/**
* User name.
*/
private String name;
// getters & setters
}
Код: Выделить всё
annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-configuration-processor'
Я провел небольшое исследование и обнаружил, что 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.
Второе решение сработало, но затем в том же ответе я нашел этот комментарий - 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