IntelliJ показывает ошибку «Более одного компонента типа» в многомодульном проекте Maven

#spring #intellij-idea

#spring #intellij-idea

Вопрос:

У меня есть следующий многомодульный проект Maven:

MODULE_1

  • Содержит интерфейс A

MODULE_2

  • Зависит от MODULE_1
  • Содержит класс X, который @Автоматически подключает компонент с типом A

MODULE_3 (приложение Spring boot)

  • Зависит от MODULE_2
  • Содержит класс B, который реализует
  • Настраивает компонент с типом X

MODULE_4 (приложение Spring boot)

  • Зависит от MODULE_2
  • Содержит класс C, который реализует
  • Настраивает компонент с типом X

Я могу запустить оба приложения (MODULE_3 и MODULE_4) через IntelliJ просто отлично, и все компоненты автоматически подключаются. Однако в IDE я получаю ошибку в классе MODULE_2 X, где я пытаюсь @Autowire A. Ошибка заключается в:

Не удалось выполнить автоматическое подключение. Более одного компонента типа. Компоненты: b (B.java ), c (C.java )

Чего я мог там не хватать? Я бы не ожидал ошибок, потому что MODULE_2 не имеет зависимостей от MODULE_3 и 4 и даже не должен видеть реализации, не говоря уже о попытке их автоматического подключения.

Я попытался аннулировать кэши IntelliJ, перезапустить IDE и повторно импортировать зависимости Maven через IDE.

Окружающая среда:

  • Windows 10
  • Intellij IDEA 2018.3.5
  • Oracle JDK 1.8.0_152

Комментарии:

1. Я нашел пару связанных (но немного устаревших) проблем в JetBrains issue tracker для вас: youtrack.jetbrains.com/issue/IDEA-199421 , youtrack.jetbrains.com/issue/IDEA-191253 . Я бы настоятельно рекомендовал связаться с ними по этому поводу (на трекере или в службе поддержки: intellij-support.jetbrains.com/hc/en-us/?intellij-idea )

2. Спасибо, я это сделаю. Мне просто интересно, не неправильно ли я понял что-то фундаментальное, и именно так это должно работать.