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



我使用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。字符串,"名字":以,……)"此检查报告具有不兼容类型的赋值

对于我尝试过的其他依赖项它工作得很好,即没有像这样的警告。但是IntelliJ仍然看不到它们的类。

这些是我使用Gradle的第一步,所以可能有些东西还没有配置。有人知道哪里出了问题吗?

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

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

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

更简洁的方法是无效缓存/重启。您可以在"文件"菜单中找到此选项。

<标题>编辑

Intellij Idea使用iml文件来解析类路径。

在Maven上尝试并得到相同的结果后,很明显,这不是Gradle和JUnit的问题。

删除文件夹~/. ideaic2016.2成功了

如果IDEA不识别单个类或几个类,我所做的是创建具有不同名称的新类,过去那里缺少类的内容,删除旧类并将新类重命名为所需的类。这就解决了问题。

的例子:想法"lost"class SomeEntity.java:

    创建MyAwesomeEntity.java
  1. 经过SomeEntity.javaMyAwesomeEntity.java的内容
  2. 删除SomeEntity.java
  3. MyAwesomeEntity.java重命名为SomeEntity.java

最新更新