У меня есть приложение на основе Java 11, созданное с использованием Gradle 4.8.1, в котором используется Mapstruct 1.3.0.Final. Я использую IntelliJ IDEA Ultimate 2019.2.3 для разработки.
Проблема:
Приложение не работает, если я запускаю его из IntelliJ IDEA, однако оно работает при сборке с Gradle.
При запуске приложения из IntelliJ я получаю следующую ошибку:
ClassNotFoundException: Cannot find implementation for com.mycompany.MyMapper
at org.mapstruct.factory.Mappers.getMapper(Mappers.java:75)
at org.mapstruct.factory.Mappers.getMapper(Mappers.java:58)
Настройка моего проекта:
Я использую еще один инструмент для обработки аннотаций - Lombokкоторый отлично работаетВсе вместе у меня они есть в моих зависимостях, таких как:
compileOnly('org.projectlombok:lombok:1.18.10')
annotationProcessor('org.projectlombok:lombok:1.18.10')
compile('org.mapstruct:mapstruct:1.3.0.Final')
annotationProcessor('org.mapstruct:mapstruct-processor:1.3.0.Final')
Как воспроизвести: Достаточно запустить модульный тест из IntelliJ UI, который требует класс, сгенерированный с помощью Mapstruct.
Вопрос: Как заставить IntelliJ IDEA правильно применять процессоры аннотаций Mapstruct?
Что я пробовал: Я столкнулся с похожими проблемами в StackOveflow и на GitHub . К сожалению, они не помогли. Они либо используют старые версии библиотеки, либо старую JVM, либо просто решения не работают.