Intellij IDEA 看不到类,但通过 Gradle 构建可以工作

Pio*_*trK 7 java ubuntu junit intellij-idea gradle

我将 IntelliJ IDEA 2016.2.4 与 Gradle 一起使用。当创建一个空项目并添加一个简单的类和一个测试类时,该项目在build通过 Gradle 运行目标时构建得很好,但 IntelliJ 没有看到默认@Test包含在依赖项中的 JUnit 注释。

当鼠标悬停在“丢失”的类上时,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 的第一步,所以也许有些东西还没有配置。有谁知道可能出了什么问题吗?

Ale*_*hko 9

将IDEA更新到2020.3版本后,我遇到了同样的问题。
IDEA看到了JDK库,没有看到外部库。
解决方案:

File -> Invalidate Caches / Restart... -> Invalidate and Restart
Run Code Online (Sandbox Code Playgroud)

您的项目设置将被保存,并且 IDEA 会继续查看所有外部库。


eat*_*ode 5

更干净的方法是使缓存无效/重新启动。您可以在“文件”菜单中找到此选项。

编辑

Intellij Idea 使用 iml 文件来解析类路径。它很可能不正确。


Pio*_*trK 2

在尝试使用 Maven 并获得相同的结果后,很明显这不是 Gradle 或 JUnit 的问题。

删除文件夹 ~/.IdeaIC2016.2 即可完成任务。