簡體   English   中英

獲取 IntelliJ 以識別 AnnotationProcessor 生成的類

[英]Get IntelliJ to recognize classes generated by AnnotationProcessor

我正在使用 java 注釋處理器在編譯時生成其他類。 使用 gradle 構建時它工作正常,但我無法讓 IntelliJ 識別生成的類。 每當我嘗試在 IntelliJ 中構建項目時,它都會出錯,說它找不到引用生成的類的符號。 同樣,由於它不知道這些類,因此在編寫使用這些類的代碼時並沒有給我任何幫助,只是將其全部突出顯示為錯誤。

我有兩個兄弟模塊:“處理器”模塊實現注釋處理器並定義注釋。 “演示”模塊只是一些用於試用注釋處理器的 JUnit 測試。 我可以在 IntelliJ 中很好地構建“處理器”模塊,但是“演示”模塊給了我如上所述的錯誤。 我在“測試”范圍內(我也嘗試過“編譯”范圍)將“處理器”作為“演示”模塊的依賴項。

如何讓 IntelliJ 自動識別類?

更新

我已經能夠通過在設置對話框中的“注釋處理器”下創建一個新的配置文件來構建它,移動該配置文件下的“演示”模塊,啟用該配置文件的注釋處理,並指定注釋處理器的 FQCN在“注釋處理器”列表框下。

但是,實時代碼幫助仍然不起作用,編輯器只是告訴我它找不到類,這確實更重要(因為我總是可以從 gradle 構建)。

在 IntelliJ 中,找到生成代碼所在的文件夾。這由設置注釋處理的同一對話框中的設置控制。 右鍵單擊該文件夾,在上下文菜單中找到“將目錄標記為”,然后選擇“生成的源根目錄”。

這樣做之后,IntelliJ 將正常識別和處理生成的類。 它還會發出編譯警告,指出輸出路徑與源根目錄​​相交,但這是可以忽略的。 我一直無法找到一種方法來消除該警告而不會使生成的類無法識別。

您可以繼續使用 pom/gradle 文件並重新加載它,它會起作用。 例子 :

pom.xml(右鍵單擊)-> Maven-> 重新加載

暫無
暫無

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

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