簡體   English   中英

Intellij IDEA 看不到類,但通過 Gradle 構建有效

[英]Intellij IDEA doesn't see classes but building via Gradle works

我將 IntelliJ IDEA 2016.2.4 與 Gradle 一起使用。 當創建一個空項目並將一個簡單的類與測試類一起添加時,通過 Gradle 運行build目標時項目構建良好,但 IntelliJ 沒有看到例如默認包含在依賴項中的 JUnit 的@Test注釋。

將鼠標懸停在“缺少”的類上時,IntelliJ 允許我將 JUnit4 添加到類路徑。 這樣做之后,什么都沒有改變。

我嘗試使緩存無效並重新啟動 - 沒有成功。

在“外部庫”下,有“Gradle:junit:junit:4.11”,並且項目構建良好,所以我認為這是語法突出顯示和自動完成的問題。

我不確定這是否重要,但在build.gradle中添加對 JUnit 的依賴的行( testCompile group: 'junit', name: 'junit', version: '4.11' )用注釋突出顯示:

'testCompile' 不能應用於 '(['group':java.lang.String, 'name':java.lang.String,...])' 此檢查報告具有不兼容類型的賦值

它適用於我嘗試過的其他依賴項,即沒有這樣的警告。 但是 IntelliJ 仍然沒有看到它們的類。

這些是我使用 Gradle 的第一步,所以可能還沒有配置一些東西。 有誰知道可能有什么問題?

更簡潔的方法是使緩存無效/重新啟動。 您可以在“文件”菜單中找到此選項。

編輯

Intellij Idea 使用 iml 文件來解析類路徑。 很有可能它不正確。

將 IDEA 更新到 2020.3 版后,我遇到了同樣的問題。
IDEA 看到了 JDK 庫,而沒有看到外部庫。
解決方法:

File -> Invalidate Caches / Restart... -> Invalidate and Restart

您的項目設置將被保存,IDEA 將繼續查看所有外部庫。

在嘗試使用 Maven 並獲得相同的結果后,很明顯 Gradle 和 JUnit 都沒有問題。

刪除文件夾 ~/.IdeaIC2016.2 完成了這項工作。

如果 IDEA 無法識別單個類或幾個類,我所做的就是創建具有不同名稱的新類,在那里刪除缺少類的內容,刪除舊類並將新類重命名為所需的類。 這解決了這個問題。

示例:IDEA“丟失”類SomeEntity.java

  1. 創建類MyAwesomeEntity.java
  2. MyAwesomeEntity.java的內容SomeEntity.javaMyAwesomeEntity.java
  3. 刪除SomeEntity.java
  4. MyAwesomeEntity.java重命名為SomeEntity.java

暫無
暫無

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

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