在 VS Code 中管理 Java 项目

Java 项目管理器扩展可帮助您管理 Java 项目及其依赖项。它还可以帮助您创建新的 Java 项目、包和类。要在 Visual Studio Code 中获得完整的 Java 语言支持,您可以安装Java 扩展包,其中包括 Java 扩展项目管理器。

安装 Java 扩展包

有关如何开始使用扩展包的详细信息,您可以查看Java 入门教程。

项目视图

Java项目视图可帮助您查看 Java 项目及其依赖项,并提供项目管理任务的入口点。

项目视图

默认情况下,Java 项目视图显示在资源管理器视图下方。如果看不到它,请尝试单击EXPLORER...标题栏中的按钮并选择Java Projects

在导航栏的溢出按钮中,还有更多选项可以使用。例如,您可以在分层视图和平面视图之间切换。

溢出按钮

您可以在资源管理器中的节点旁边找到按钮,这些按钮为某些操作提供了有用的快捷方式。

内联按钮

每个节点的上下文菜单中还有许多有用的功能,您可以在资源管理器中右键单击该节点将其切换。

上下文菜单

创建一个新的Java项目

您可以通过单击导航栏中的+按钮,或通过命令面板中的Java: Create Java Project... ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ) 来创建新的 Java 项目。在创建过程中,如果尚未安装扩展,VS Code 将帮助您安装每个项目类型所需的扩展。

创建项目

导入Java项目

您可以通过“文件” > “打开文件夹...”直接将现有 Java 项目和模块导入到您的工作区(确保打开的文件夹包含您的构建工具脚本,例如pom.xmlbuild.gradle)。VS Code for Java 将检测您的项目并自动导入它们。

当您将新模块添加到项目中时,您可以触发命令Java:在工作区中导入 Java 项目,将它们导入到您的工作区中。此命令有助于将新项目导入工作区,而无需重新加载 VS Code 窗口。

导出到 JAR

您可以从项目视图或通过运行命令Java: Export Jar...将构建导出到 JAR 。

从项目视图导出 jar

为项目配置运行时

随着 Java 的发展,开发人员使用多个版本的 JDK 是很常见的。您可以通过设置将它们映射到本地安装路径:java.configuration.runtimes。该设置具有以下格式:

"java.configuration.runtimes": [
  {
    "name": "JavaSE-1.8",
    "path": "/usr/local/jdk1.8.0_201"
  },
  {
    "name": "JavaSE-11",
    "path": "/usr/local/jdk-11.0.3",
    "sources" : "/usr/local/jdk-11.0.3/lib/src.zip",
    "javadoc" : "https://docs.oracle.com/en/java/javase/11/docs/api",
    "default":  true
   },
   {
    "name": "JavaSE-12",
    "path": "/usr/local/jdk-12.0.2"
   },
   {
    "name": "JavaSE-13",
    "path": "/usr/local/jdk-13"
   }
]

注意"default": true:您可以通过添加到条目将其中之一设置为默认值。默认 JDK 将用于您的非托管文件夹(不带构建工具)。

要查看您的项目使用了哪些 JDK,您可以触发命令Java:命令面板中配置 Java 运行时( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) )。此命令打开一个视图,显示项目的运行时信息:

项目运行时间

更改 Maven 和 Gradle 项目的 JDK

如果您想更改 Maven 或 Gradle 项目的 JDK 版本,则需要在构建脚本(pom.xmlbuild.gradle)中更新它。您可以点击看看如何做出这样的改变。点击将导航到项目的构建脚本文件。

更改非托管文件夹的 JDK

要更改非托管文件夹的 JDK(无需任何构建工具),您可以单击按钮。它将列出所有 JDK,您可以为非托管文件夹选择一个。

下载 JDK

如果您想下载新的 JDK,可以单击该链接,或在命令面板download中触发命令Java: Install New JDK ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) )。它将打开一个新视图,指导您下载 JDK。

下载-jdk

注意:要启用 Java 预览功能,请参阅如何将 VS Code 与新的 Java 版本一起使用

为非托管文件夹配置类路径

Java 项目管理扩展提供了一个用户界面来配置非托管文件夹的类路径。可以在类路径配置页面中手动设置类路径。您可以通过从命令面板 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) ) 执行Java:Configure Classpath命令来打开它。

配置类路径

在极少数情况下,您可能需要通过从命令面板 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) ) 执行Java: Clean Java Language Server Workspace命令来清理 Java 工作区,以便让语言服务器重建您的 Java 工作区。依赖关系。

依赖管理

添加 Maven 依赖项

对于 Maven 项目,您可以通过单击项目视图中Maven 依赖项节点旁边的+图标来添加依赖项。

添加maven依赖

管理非托管文件夹的依赖关系

如果您的项目是一个非托管文件夹,没有任何构建工具。您可以通过单击引用库节点或其下的项目上的+图标或-图标来管理依赖项 ,也可以直接将 jar 库拖到该节点Referenced Libraries

管理引用的库

您还可以在类路径配置页面中管理依赖项。请参阅:为非托管文件夹配置类路径

在幕后,有一个java.project.referencedLibraries场景settings.json。以下是有关如何自定义此设置的详细信息。

包括库

要引用的库是使用一组全局模式来描述的。

例如:

"java.project.referencedLibraries": [
    "library/**/*.jar",
    "/home/username/lib/foo.jar"
]

上面的设置将添加.jar工作区库文件夹中的所有文件以及foo.jar从指定绝对路径到项目外部依赖项的文件。

然后,VS Code 会监视引用的库,如果这些依赖文件中的任何一个发生更改,项目都会刷新。

默认情况下,VS Code 将lib使用 glob 模式引用工作区目录中的所有 JAR 文件lib/**/*.jar

排除一些库

如果您想从项目中排除某些库,您可以扩展java.project.referencedLibraries以使用include/exclude字段并添加exclude全局模式:

"java.project.referencedLibraries": {
    "include": [
        "library/**/*.jar",
        "/home/username/lib/foo.jar"
    ],
    "exclude": [
        "library/sources/**"
    ]
}

在上面的示例中,library/sources文件夹中的任何二进制 JAR 文件都将被忽略为项目的外部依赖项。

附上源jar

默认情况下,引用将尝试在同一目录下{binary}.jar搜索,如果找到匹配项,则将其附加为源。{binary}-sources.jar

如果您想手动指定 JAR 文件作为源附件,您可以在字段中提供键值映射sources

"java.project.referencedLibraries": {
    "include": [
        "library/**/*.jar",
        "/home/username/lib/foo.jar"
    ],
    "exclude": [
        "library/sources/**"
    ],
    "sources": {
        "library/bar.jar": "library/sources/bar-src.jar"
    }
}

这样,bar-src.jar就附加到了 bar.jar 作为其源。

轻量级模式

VS Code for Java 支持两种模式:轻量级模式和标准模式。轻量级模式下,语言服务器只解析源文件和JDK;在标准模式下,导入的依赖关系将被解决,并且项目将由语言服务器构建。当您需要快速启动和轻量级环境来处理源文件时(例如,阅读源代码、在源代码和 JDK 之间导航、查看大纲和 Javadoc 以及检测和修复语法错误),轻量级模式效果最佳。此外,源文件和 JDK 范围内支持代码完成。

轻量级模式不解析导入的依赖项,也不构建项目,因此它不支持运行、调试、重构、linting 或检测语义错误。要使用这些功能,您需要将工作区从轻量级模式切换到标准模式。

java.server.launchMode您可以通过配置以下选项来控制启动模式:

  • Hybrid(默认)- 首先,以轻量级模式打开工作区。如果您的工作区包含未解析的 Java 项目,系统会询问您是否切换到标准模式。如果您选择“稍后”,它将保持轻量级模式。您可以单击状态栏上的语言状态项手动切换到标准模式。
  • Standard- 工作区以标准模式打开。
  • LightWeight- 工作区以轻量级模式打开。您可以单击状态栏上的语言状态项手动切换到标准模式。

语言状态项通过不同的图标指示当前工作区处于哪种模式。

  • - 以轻量级模式打开的工作区。
  • - 工作区正在以标准模式打开。
  • - 以标准模式打开的工作区。

单击语言状态项切换到标准模式。

切换到标准

构建状态

当您在 Visual Studio Code 中编辑 Java 源代码时,Java 语言服务器正在构建您的工作区以为您提供必要的语言功能。您可以通过单击状态栏中的语言状态项来查看详细的构建任务状态并观察幕后发生的情况。当通知显示语言服务器正在打开 Java 项目时,您还可以选择检查详细信息链接以查看构建任务状态。

其他资源

有多个 Visual Studio Code 扩展可以支持不同的 Java 构建系统。以下是几种流行构建系统的扩展。

如果您在使用上述功能时遇到任何问题,可以通过提交问题联系我们

下一步

继续阅读以了解更多信息:

  • Java 编辑- 探索 VS Code 中 Java 的编辑功能。
  • Java 调试- 了解如何使用 VS Code 调试 Java 项目。
  • Java 测试- 将 VS Code 用于 JUnit 和 TestNG 案例。
  • Java 扩展- 了解 VS Code 的更多有用的 Java 扩展。