在Groovy类的IntelliJ中"类已存在"错误

Ed *_*ill 6 groovy intellij-idea

在IntelliJ(2016.2和之前的版本)中,我们将Groovy类标记为红色,并显示错误"class already exists".我认为我们可以排除原因是存根生成,因为它已停用.

可能它是在我们的星座中引起的:我们将已编译的groovy(和java)类包含在一个注册为依赖项的jar中.

依赖MyProduct.jar包含 com.mycompany.MyGroovyClass

我们的来源包含 com.mycompany.MyGroovyClass

如果依赖项已在Test-Scope中注册,则错误消失,在出现错误的所有其他范围内.

但是,在我们的结构中,我们必须将编译的类包含在编译范围内,因为我们希望避免每个开发人员需要编译所有类(我知道后台编译能力,但我们有一个星座可以防止这种情况发生.工作).

我们没有com.mycompany.MyJavaClass在源和MyProduct.jar中存在的错误.

关于我们如何解决这个问题的任何想法?

fac*_*ias 7

我们一直在遭遇同样的问题,似乎IntelliJ注册了Java类,而且还注册了Groovy类,因此它显示了该消息(BTW,我们正在使用Maven项目).

所以我们最终转到目标文件夹 - >右键单击 - >标记目录为 - >排除.然后,此设置将保存在IML文件中,并且不会再次发生.

希望它也适合你!干杯

  • 您可能还需要深入查看目标下的几个目录并找到"main"和"test"目录,并将它们标记为已排除.在我的项目中,即使他们的父目录被标记为排除(Intellij IDEA Ultimate 2017.1),它们也会被自动标记为"生成源". (5认同)

bro*_*fox 5

我正在使用gmavenplus-plugin:1.5 标记target/generated-sources/generated-sources/main为“已排除”之后,错误消失了。我什至没有“使缓存无效并重新启动”,它会保留设置。这很棒。Intellij 2017.1.5