【问题标题】:Compilation error: duplicate class with MapStruct in IntelliJ IDEA 2019.1编译错误:在 IntelliJ IDEA 2019.1 中使用 MapStruct 重复类
【发布时间】:2019-03-29 10:21:49
【问题描述】:

我正在使用Mapstruct 映射不同的 Java Bean,但在安装最新的 IntelliJ 更新后,编译失败并出现错误:

Compilation error: duplicate class

这里是 IntelliJ 的版本详情

IntelliJ IDEA 2019.1 (Ultimate Edition)
Build #IU-191.6183.87, built on March 27, 2019
JRE: 1.8.0_202-release-1483-b39 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.3

编译错误:

Error:(14, 8) java: duplicate class: com.company.mapper.GMapperImpl

【问题讨论】:

  • 请发布完整的错误,您在某处有一个重复的课程。
  • 完成,在本次更新之前,这一切正常,此 mapperImpl 类由 mapstruct 库自动生成,我已检查没有重复的类。
  • 您是否尝试过清理/重建您的项目并运行“文件 | 使缓存无效”?
  • grep GMapperImpl -R <path/to/project/directory> 打印什么?定义重复的GMapperImpl 类的文件是什么?
  • @KarolDowbecki .out 导致此问题的目录,我将其删除并开始正常工作。

标签: java intellij-idea


【解决方案1】:

我的课程遇到了类似的问题,通过在出现此错误的 maven 项目上单击 clean 生命周期阶段从 intellij 内部执行 maven clean 得到解决,然后从 @987654326 再​​次构建项目@。

【讨论】:

  • 如果有人还在苦苦挣扎,我已经为此苦苦挣扎了好几个小时,删除了缓存,但没有任何效果,最后删除了生成的源目录然后开始工作
【解决方案2】:

如果原始包中已经存在 .java 文件,并且如果您在之前的运行中复制然后运行,请尝试删除该文件,并且将在目标文件夹下找到新副本,这将消除重复类错误。 即使出现错误,它仍然不会受到伤害,因为新类将始终在 target -> generated-sources->annotation 文件夹下生成。一旦你把它复制过来并删除目标文件夹下的副本,你应该会很好。

【讨论】:

    【解决方案3】:

    .out 目录导致了这个问题,我删除了它并开始正常工作

    【讨论】:

      【解决方案4】:

      在我的情况下(一个多模块项目),这是因为项目配置搞砸了:在模块配置 (F4) 中,有第二个源根指向主 pom。删除它就足够了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-22
        • 1970-01-01
        • 2018-07-04
        • 1970-01-01
        • 2018-12-10
        • 1970-01-01
        • 2018-11-11
        相关资源
        最近更新 更多