[英]“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.5
將target/generated-sources/generated-sources/main
標記為“Excluded”后,錯誤消失了。 我甚至做了“使緩存無效並重新啟動”,它會持續設置。 這很棒。 Intellij 2017.1.5
我們有兩種方法可以解決這個問題
目標文件夾 - > generated-sources - > groovy-stubs - >右鍵單擊主文件夾 - >將目錄標記為 - >排除
從gmavenplus插件中刪除<goal>generateStubs</goal>
確保將src文件夾標記為Sources Root,並對test文件夾執行相同操作
然后刪除目標文件夾(很可能是用黃色標記),不要擔心它不會刪除項目中的任何代碼
如果問題仍然存在,請繼續轉至文件 - >無效緩存/重新啟動
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.