簡體   English   中英

在Groovy類的IntelliJ中“類已存在”錯誤

[英]“Class already exists” error in IntelliJ on Groovy class

在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中也存在。

關於我們如何解決這個問題的任何想法?

我們一直在遭遇同樣的問題,似乎IntelliJ注冊了Java類,而且還注冊了Groovy類,並且因為它顯示了該消息(BTW,我們正在使用Maven項目)。

所以我們最終轉到目標文件夾 - >右鍵單擊 - >標記目錄為 - >排除。 然后,此設置將保存在IML文件中,並且不會再次發生。

希望它也適合你! 干杯

我正在使用gmavenplus-plugin:1.5target/generated-sources/generated-sources/main標記為“Excluded”后,錯誤消失了。 我甚至做了“使緩存無效並重新啟動”,它會持續設置。 這很棒。 Intellij 2017.1.5

我們有兩種方法可以解決這個問題

  1. 排除存根目錄

目標文件夾 - > generated-sources - > groovy-stubs - >右鍵單擊主文件夾 - >將目錄標記為 - >排除

  1. 從gmaven插件中刪除generateStubs目標

從gmavenplus插件中刪除<goal>generateStubs</goal>

確保將src文件夾標記為Sources Root,並對test文件夾執行相同操作

然后刪除目標文件夾(很可能是用黃色標記),不要擔心它不會刪除項目中的任何代碼

如果問題仍然存在,請繼續轉至文件 - >無效緩存/重新啟動

暫無
暫無

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

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