在VS Code中管理Java项目

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

安装Java扩展包

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

项目视图

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

项目视图

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

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

溢出按钮

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

内联按钮

每个节点的上下文菜单中也有许多有用的功能,你可以在资源管理器中右键点击节点来切换它。

上下文菜单

创建一个新的Java项目

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

创建项目

导入Java项目

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

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

导出为JAR

您可以从项目视图中导出您的构建到JAR,或者通过运行命令Java: Export 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,您可以为未管理的文件夹选择一个。

下载JDKs

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

下载-jdk

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

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

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

配置类路径

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

依赖管理

添加一个Maven依赖

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

添加Maven依赖

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

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

管理引用的库

您还可以在类路径配置页面管理依赖项。参见:为未管理文件夹配置类路径

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

包含库

引用的库使用一组全局模式进行描述。

例如:

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

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

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

默认情况下,VS Code 将使用通配符模式 lib/**/*.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 的范围内支持代码补全。

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

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

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

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

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

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

切换到标准

构建状态

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

额外资源

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

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

下一步

继续阅读以了解更多关于: