Итак, я заметил следующую строку в файле gradle проекта jhipster:
annotationProcessor ("org.springframework.boot:spring-boot-configuration-processor") {
exclude group: 'com.vaadin.external.google', module: 'android-json'
}
Мы также использовали ту же конфигурацию в Maven для другого проекта, чтобы решить следующую проблему: Временная зависимость Maven (библиотека / jar vaadin json) не исключается
А теперь у меня следующие вопросы:




spring-boot-configuration-processor - это процессор аннотаций, который генерирует метаданные о классах в вашем приложении, которые аннотируются с помощью @ConfigurationProperties. Эти метаданные используются вашей IDE (Eclipse, IntelliJ или NetBeans) для обеспечения автозаполнения и документации для свойств при редактировании файлов application.properties и application.yaml. Вы можете узнать об этом немного больше в соответствующий раздел справочной документации Spring Boot.
Начиная с Spring Boot 1.5.10, в исключении больше нет необходимости, поскольку com.vaadin.external.google:android-json больше не является зависимостью от spring-boot-configuration-processor.
What does the spring-boot-configuration-processor dependency do?
Это сканирует библиотеки в сборке и видит, какие свойства они используют, чтобы сообщить IDE
Why is it necessary to sometimes exclude dependencies from the processor?
Библиотеки Maven иногда могут конфликтовать - та, на которую вы ссылаетесь, была исключена JHipster, потому что это приводило к ошибкам, когда на пути к классам вместе с другой библиотекой в зависимостях JHipster
Why doesn't the processor necessarily appear in the mvn dependency:tree?
Для меня это подходит на jhipster-sample-app. Предположительно вы имеете в виду прокомментировать связанную проблему, утверждающий, что библиотеки android-json нет в дереве. Я спросил там об этом.
Why are exclusions used with processor in situations where it's very difficult to exclude a dependency?
Это проблема конфликт зависимостей, как и любая другая, просто так получилось, что процессор вносит ключевую зависимость (или, скорее, так было, поскольку @ Энди Уилкинсон указывает, что com.vaadin.external.google:android-json больше не используется процессором)
Похоже, это зависимость только для разработчиков. если он поддерживает только функции IDE, я должен отметить его «предоставленной» областью? Почему инструмент Spring boot initializr не сделал этого при создании проекта?
безупречный ответ!