在 VS Code 中管理 Java 项目
Java扩展的项目管理器帮助您管理Java项目及其依赖项。它还帮助您创建新的Java项目、包和类。要获得Visual Studio Code中的完整Java语言支持,您可以安装Java扩展包,该扩展包包括Java项目管理器扩展。
有关如何开始使用扩展包的详细信息,您可以查看Java 入门 教程。
项目视图
Java 项目视图帮助您查看您的 Java 项目及其依赖项,并为项目管理任务提供入口点。

默认情况下,Java 项目视图显示在资源管理器视图的下面。如果看不到,请尝试点击
输入:...在 EXPLORER 标题栏中的按钮并选择 Java 项目。
在导航栏的溢出按钮中,有更多选项可供使用。例如,您可以切换 hierarchical view 和 flat view。

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

每个节点的上下文菜单中也有许多有用的选项,您可以在资源管理器中右键单击节点以切换其显示。

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

导入Java项目
您可以直接将现有的Java项目和模块导入到您的工作区中,通过文件 > 打开文件夹...(确保所打开的文件夹包含您的构建工具脚本,例如,pom.xml或build.gradleVS Code for Java 会自动检测并导入您的项目。
当您将新模块添加到项目中时,您可以触发命令Java: 在工作区中导入Java项目以将它们导入到您的工作区。此命令有助于将新项目导入工作区,而无需重新加载VS CodeWindows。
导出到JAR
您可以在项目视图中导出您的构建到JAR,或通过运行命令Java: 导出 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"
}
]
注意:您可以通过添加将其之一设置为默认值
"默认": true进入。对于您的非管理文件夹(没有构建工具),将使用默认的 JDK。
要查看您的项目使用了哪些 JDK,您可以触发命令 Java: 配置 Java 运行时 在 命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P))。此命令将打开一个视图,显示您的项目运行时信息:

更改Maven和Gradle项目的JDK
如果你想更改你的Maven或Gradle项目的JDK版本,你需要在你的构建脚本里更新它 (pom.xml或build.gradle)。您可以点击要了解如何进行这些更改。点击将导航到项目构建脚本文件。
更改 JDK 以管理未管理的文件夹
要更改未管理文件夹(没有任何构建工具)的 JDK,您可以点击按钮。它将列出所有JDK,并且您可以选择一个用于您的非管理文件夹。
下载 JDKs
如果您想下载新的 JDK,您可以点击下载 链接,或触发命令 Java: 安装新的 JDK 在 命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P))。它将打开一个新的视图,指导您下载 JDK。

注意:要启用 Java 预览功能,请参阅 如何使用 VS Code 与新的 Java 版本。
配置未管理文件夹的类路径
Java 扩展的项目管理提供了配置未管理文件夹的类路径的用户界面。类路径可以在类路径配置页面中手动设置。您可以通过在命令面板中执行Java: 配置类路径命令来打开它(⇧⌘P(Windows, Linux Ctrl+Shift+P))。

在某些罕见的情况下,您可能需要通过执行Java: 清理Java语言服务器工作区命令从命令面板(⇧⌘P(Windows, Linux Ctrl+Shift+P))来让语言服务器重建您的依赖项。
依赖管理
添加一个Maven依赖
对于Maven项目,您可以通过点击项目视图中+图标来添加依赖项Maven Dependencies节点。

管理未管理文件夹的依赖项
如果您的项目是一个没有使用任何构建工具的非管理文件夹。您可以点击+图标或-图标来管理依赖项,或者您可以直接将您的jar库拖动到该节点引用的库

你也可以在类路径配置页面管理依赖项。参见:为未管理的文件夹配置类路径
幕后有一个设置Java.项目.引用的库在settings.json以下是自定义此设置的详细信息。
包含库
引用的库是使用一组 glob 模式描述的。
例如:
"java.project.referencedLibraries": [
"library/**/*.jar",
"/home/用户名/lib/bar.jar"
]
上述设置将添加所有输入:.jar工作区的库文件夹中的文件以及foo.jar从指定的绝对路径到项目外部依赖。
引用的库将被 VS Code 监控,如果这些依赖文件有任何更改,项目将被刷新。
默认情况下,VS Code 会引用工作区中的所有 JAR 文件库使用 glob 模式遍历目录lib/**/*.jar输入:.
排除一些库
如果你想从项目中排除一些库,可以展开Java.项目.引用的库使用包括/排除字段并添加一个排除全局模式:
"java.project.referencedLibraries": {
"include": [
"library/**/*.jar",
"/home/username/lib/foo.jar"
],
"exclude": [
"library/sources/**"
]
}
在上面的示例中,任何二进制JAR文件在图书馆/来源文件夹被忽略,因为项目依赖于外部依赖项。
附加源码 jar
默认情况下,一个引用{二进制}.jar将尝试搜索{二进制}-源代码.jar在相同的目录下,并在找到一个匹配项时将其作为源附加。
如果您想手动指定一个JAR文件作为源附件,您可以提供一个键值对映射在来源领域:
"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使用以下选项:
混合(默认) - 首先,工作区以轻量级模式打开。如果您的工作区包含未解决的Java项目,将询问您是否切换到标准模式。如果您选择 稍后,它将保持在轻量级模式。您可以点击状态栏上的语言状态项手动切换到标准模式。标准- 一个工作区以标准模式打开。轻量级- 工作区以轻量模式打开。您可以点击状态栏上的语言状态项手动切换到标准模式。
语言状态项目使用不同的图标指示当前工作区所处的模式。
- - 工作区以轻量模式打开。
- - 正在用标准模式打开的工作区。
- - 工作区以标准模式打开。
点击语言状态项切换到标准模式。

构建状态
当您在Visual Studio Code中编辑Java源代码时,Java语言服务器正在构建您的工作区以向您提供必要的语言功能。您可以通过点击状态栏中的语言状态项来查看详细的构建任务状态并了解幕后发生了什么。当通知显示语言服务器正在打开Java项目以查看构建任务状态时,您可以选择链接查看详细信息。
附加资源
有多个Visual Studio Code扩展可以支持Java的不同构建系统。以下是几种流行构建系统的扩展。
- Java 的 Maven
- Gradle 用于 Java
- Bazel 用于 Java (Bazel 用于
构建文件,不包括Java集成)
如果您在使用上述功能时遇到任何问题,可以通过提交问题来联系我们。
下一步
继续阅读以了解更多信息: