在 VS Code 中管理 Java 项目

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

安装 Extension Pack for Java

有关如何开始使用该扩展包的详细信息,请参阅 Java 入门教程。

项目视图

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

project view

默认情况下,Java Projects 视图显示在 Explorer(资源管理器)视图下方。如果看不到该视图,请尝试点击 EXPLORER 标题栏中的 ... 按钮,然后选择 Java Projects

在导航栏的溢出菜单(更多操作)按钮中,还有更多可用选项。例如,您可以在分层视图和扁平视图之间进行切换。

overflow button

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

inline button

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

context menu

创建新的 Java 项目

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

create project

导入 Java 项目

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

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

导出为 JAR

您可以从项目视图中,或者通过运行 Java: Export Jar... 命令,将构建结果导出为 JAR 文件。

Export jar from the project view

为项目配置运行时

随着 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 将用于您的非托管文件夹(没有构建工具的文件夹)。

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

Project runtime

更改 Maven 和 Gradle 项目的 JDK

如果您想更改 Maven 或 Gradle 项目的 JDK 版本,需要在构建脚本(pom.xmlbuild.gradle)中进行更新。您可以点击 查看如何进行此类更改。点击 将会导航到该项目的构建脚本文件。

更改非托管文件夹的 JDK

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

下载 JDK

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

Download-jdk

注意:要启用 Java 预览功能,请参阅如何使用新版 Java 运行 VS Code

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

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

configure classpath

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

依赖项管理

添加 Maven 依赖项

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

add maven dependency

管理非托管文件夹的依赖项

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

manage referenced libraries

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

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

包含库

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

例如

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

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

VS Code 会监视这些引用的库,如果这些依赖文件发生任何变化,项目将会刷新。

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

排除部分库

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

"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 的范围内支持代码补全。

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

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

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

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

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

点击语言状态项即可切换到标准模式。

Switch to Standard

构建状态

当您在 Visual Studio Code 中编辑 Java 源码时,Java 语言服务器正在构建您的工作区,以提供必要的语言特性。您可以通过点击状态栏中的语言状态项,查看详细的构建任务状态并观察后台正在发生的事情。当通知显示语言服务器正在打开 Java 项目时,您也可以选择 check details(查看详情)链接来查看构建任务状态。

其他资源

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

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

后续步骤

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

  • Java 编辑 - 探索 VS Code 中 Java 的编辑功能。
  • Java 调试 - 了解如何在 VS Code 中调试您的 Java 项目。
  • Java 测试 - 在 VS Code 中使用 JUnit 和 TestNG 进行测试。
  • Java 扩展 - 了解更多适用于 VS Code 的有用 Java 扩展。
© . This site is unofficial and not affiliated with Microsoft.