簡體   English   中英

如果從 IntelliJ IDEA 運行應用程序,則找不到 Mapstruct 生成的類

[英]Mapstruct generated classes are not found if the application is run from IntelliJ IDEA

我有一個使用 Gradle 4.8.1 構建的基於 Java 11 的應用程序,它使用 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')

如何重現:從需要使用 Mapstruct 生成的 class 的 IntelliJ UI 開始單元測試就足夠了。

問題:如何讓 IntelliJ IDEA 正確應用 Mapstruct 注釋處理器?

我嘗試過的:我在 StackOveflow 和GitHub 上遇到了類似的問題。 不幸的是,他們沒有幫助。 他們要么使用舊版本的 lib,舊的 JVM,要么只是解決方案不起作用。

請在“Settings/Preferences | Build, Execution, Deployment | Build Tools | Gradle”中設置“Build and Run using Gradle”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM