Gradle NoSuchMethodError-Intellij和lombok

Gradle NoSuchMethodError-Intellij和lombok,gradle,intellij-idea,lombok,junit5,intellij-lombok-plugin,Gradle,Intellij Idea,Lombok,Junit5,Intellij Lombok Plugin,我在IntelliJ上遇到了一个奇怪的问题。我正在gradle 4多模块项目中使用Lombok(1.18.2)、IntelliJ(2018.2.2)和JUnit 5 我花了几个小时来复制这个 使用覆盖率运行所有测试用例 下面将出现一个弹出窗口 如果我按下OK并重新运行单元测试用例。对于getter和setter,它将以java.lang.NoSuchMethodError开始失败 删除Lombok并在此之后生成getter和setter也没有效果 尝试了所有方法来修复此问题(启用注释处

我在IntelliJ上遇到了一个奇怪的问题。我正在gradle 4多模块项目中使用Lombok(1.18.2)、IntelliJ(2018.2.2)和JUnit 5

我花了几个小时来复制这个

  • 使用覆盖率运行所有测试用例

  • 下面将出现一个弹出窗口

  • 如果我按下OK并重新运行单元测试用例。对于getter和setter,它将以java.lang.NoSuchMethodError开始失败

  • 删除Lombok并在此之后生成getter和setter也没有效果

  • 尝试了所有方法来修复此问题(启用注释处理器、Lombok插件、干净构建),但没有成功

    编辑1:

    implementation 'org.projectlombok:lombok:1.18.2'
    testImplementation('org.junit.jupiter:junit-jupiter-api:5.3.1')
    testImplementation('org.junit.jupiter:junit-jupiter-params:5.3.1')
    testRuntime('org.junit.jupiter:junit-jupiter-engine:5.3.1')
    testImplementation("org.junit.platform:junit-platform-launcher:1.3.1")
    testImplementation("org.junit.vintage:junit-vintage-engine:5.3.1")
    testImplementation "org.mockito:mockito-core:2.+"
    testImplementation('org.mockito:mockito-junit-jupiter:2.22.0')
    
    根构建。渐变:

    implementation 'org.projectlombok:lombok:1.18.2'
    testImplementation('org.junit.jupiter:junit-jupiter-api:5.3.1')
    testImplementation('org.junit.jupiter:junit-jupiter-params:5.3.1')
    testRuntime('org.junit.jupiter:junit-jupiter-engine:5.3.1')
    testImplementation("org.junit.platform:junit-platform-launcher:1.3.1")
    testImplementation("org.junit.vintage:junit-vintage-engine:5.3.1")
    testImplementation "org.mockito:mockito-core:2.+"
    testImplementation('org.mockito:mockito-junit-jupiter:2.22.0')
    
    子项目构建。梯度

    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    

    我通过以下更改解决了此问题:

    1:在Intellij中启用注释处理。(文件|设置|构建、执行、部署|编译器|注释处理器)

    2:选择processor path并指向lombok-1.18.4.jar,因为我只想为lombok而不是Mapstruct启用它。如果对这两个类都启用,则会在默认位置生成Mapstruct类

    3:在文件“使缓存无效并重新启动”下

    4:在建选项“重建项目”


    这将解决它。我花了一段时间才让它在Intellij中工作。

    你能发布
    build.gradle
    脚本中配置lombok依赖项的部分吗?请查看编辑。你能尝试添加以下依赖项吗:
    testAnnotationProcessor“org.projectlombok:lombok:${lombokVersion}
    testCompileOnly“org.projectlombok:lombok:${lombokVersion}”
    ?(和清理/重建项目)没有。它没有解决问题。gradle构建正在通过,但Intellij构建正在失败。你有什么进展吗?它现在影响到我了。我通过关闭gradle/Runner首选项窗格中的“将IDE构建/运行操作委派给gradle”来使它工作