gpt4 book ai didi

java - 为什么 vscode 无法识别 import org.junit?

转载 作者:行者123 更新时间:2023-12-04 12:16:35 34 4
gpt4 key购买 nike

我正在使用 maven 在 Visual Studio 代码中开发一个 java 项目,目前正在尝试编写一个测试类。
我已将 junit 作为依赖项添加到我的 pom.xml 文件中:

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>

目前,我的类是这样的:(Board 类没有问题,getOne() 返回 1)
import org.junit.Test;

public class BoardTest {
private Board board = new Board();

@Test
public void testOne() {
assert(board.getOne() == 1);
}
}

最初,当我打开文件时,一切都很好,但是一旦我保存,vscode 就会生成 2 条错误消息,当我关闭并重新打开文件时,这两条错误消息都会消失,但在保存后再次出现:
  • “无法解析导入 org.junit”
  • “无法将测试解析为类型”

  • 有趣的是,即使存在这些错误,vscode 也会为我提供有关导入和 @Test 标志的鼠标悬停信息,就好像它实际上已经正确解决了它们一样。
    我跑了 mvn install从命令行,vscode 甚至在项目的 java 依赖项部分列出了 junit-4.12.jar。

    运行 mvn test产生预期结果(测试通过),并在 mvn package 之后,从命令行运行项目的 .jar 文件可以毫无问题地运行项目。每当我尝试从 vscode 运行项目时,它都会通知我构建失败,即使当前不存在错误消息(即在我打开测试类之后但在我保存之前)。如果我告诉 vscode 继续,该项目再次运行良好。尝试从 vscode 运行测试的工作方式相同(我收到一条错误消息,但在我告诉 vscode 继续进行后,测试照常通过)。

    关于什么可能导致这种情况的任何想法?以下是我正在使用的所有内容的当前版本:

    JDK:openjdk v11.0.7

    vscode:v1.45.1

    Maven:Apache Maven v3.6.3

    最佳答案

    试试这个 VS Code 命令...

    View -> Command Palette -> Java: Clean Java Language Server Workspace
    此命令解决了我与 VS Code 无法识别的类似问题 import org.json.*在 Gradle 项目的 .java 文件中,即使 Gradle 可以成功构建和运行。这个 VS Code 命令类似于 IntelliJ 的 File -> Invalidate Caches and Restart因为它强制刷新 IDE 的可用 token 和标识符缓存。
    旁注:
  • 确保至少运行一次构建工具(例如 gradle buildmvn install ),以便将所需的包下载到本地计算机,以便 VS Code 可以找到它们。
  • 此命令附带来自 Red Hat (redhat.java) 的 VS Code 扩展“Java 语言支持”,该扩展捆绑在 Microsoft (vscjava.vscode-java-pack) 的“Java 扩展包”中。您必须安装这些扩展之一才能使用它。
  • 关于java - 为什么 vscode 无法识别 import org.junit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62075442/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com