在 VS Code 中管理 Java 项目
Java 项目管理器扩展可帮助你管理 Java 项目及其依赖项。它还可帮助你创建新的 Java 项目、包和类。要在 Visual Studio Code 中获得完整的 Java 语言支持,你可以安装Java 扩展包,其中包括 Java 项目管理器扩展。
有关如何开始使用扩展包的详细信息,你可以查看Java 入门教程。
项目视图
“Java 项目”视图可帮助你查看 Java 项目及其依赖项,并提供用于项目管理任务的入口点。
默认情况下,“Java 项目”视图显示在“资源管理器”视图下方。如果看不到它,请尝试单击“资源管理器”标题栏中的
...
按钮,然后选择“Java 项目”。
在导航栏的溢出按钮中,有更多选项可供使用。例如,你可以在分层视图和平铺视图之间切换。
你可以在资源管理器中找到节点旁边的按钮,这些按钮为某些操作提供了有用的快捷方式。
每个节点的上下文菜单中也有许多有用的功能,你可以在资源管理器中右键单击节点将其切换出来。
创建新的 Java 项目
你可以通过单击导航栏中的 + 按钮或通过命令面板中的命令:Java: 创建 Java 项目... (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 创建新的 Java 项目。在创建期间,如果尚未安装扩展,VS Code 将根据你的项目类型帮助安装所需的扩展。
导入 Java 项目
你可以通过“文件”>“打开文件夹...”直接将现有 Java 项目和模块导入到你的工作区(确保打开的文件夹包含你的构建工具脚本,例如 pom.xml
或 build.gradle
)。VS Code for Java 将检测你的项目并自动导入它们。
当你在项目中添加新模块时,你可以触发命令 Java:导入工作区中的 Java 项目以将它们导入到你的工作区。此命令有助于将新项目导入到工作区,而无需重新加载 VS Code 窗口。
导出为 JAR
你可以从项目视图或通过运行命令 Java:导出 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,你可以在“命令面板”(⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中触发命令 Java:配置 Java 运行时。此命令会打开一个视图,其中显示你的项目的运行时信息
更改 Maven 和 Gradle 项目的 JDK
如果要更改 Maven 或 Gradle 项目的 JDK 版本,需要在你的构建脚本(pom.xml
或 build.gradle
)中更新它。你可以单击 查看如何进行此类更改。单击 将导航到项目的构建脚本文件。
更改非托管文件夹的 JDK
要更改非托管文件夹(不使用任何构建工具)的 JDK,你可以单击 按钮。它将列出所有 JDK,你可以为你的非托管文件夹选择一个。
下载 JDK
如果要下载新的 JDK,可以单击 download
链接,或在“命令面板”(⇧⌘P (Windows, Linux Ctrl+Shift+P)) 中触发命令 Java:安装新的 JDK。它将打开一个新视图,指导你下载 JDK。
注意:要启用 Java 预览功能,请参阅如何将 Visual Studio Code 与新的 Java 版本一起使用。
为非托管文件夹配置类路径
Java 项目管理扩展提供了一个用户界面来配置非托管文件夹的类路径。可以在类路径配置页面中手动设置类路径。你可以通过从“命令面板”执行 Java:配置类路径命令 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 来打开它。
在某些极少数情况下,你可能需要通过从“命令面板”执行 Java:清理 Java 语言服务器工作区命令 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 来清理 Java 工作区,以便语言服务器重建你的依赖项。
依赖项管理
添加 Maven 依赖项
对于 Maven 项目,你可以通过单击项目视图中“Maven 依赖项”节点旁边的 + 图标来添加依赖项。
管理非托管文件夹的依赖项
如果您的项目是一个没有构建工具的非托管文件夹,您可以通过点击 引用库 节点上的 + 图标或 - 图标,或者直接将您的 jar 库拖拽到 引用库
节点来管理依赖项。
您也可以在类路径配置页面管理依赖项。请参阅:为非托管文件夹配置类路径
在后台,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。
轻量级模式
Java 版 VS Code 支持两种模式:轻量级和标准。在轻量级模式下,语言服务器仅解析源文件和 JDK;在标准模式下,语言服务器会解析导入的依赖项并构建项目。当您需要快速启动和轻量级的环境来处理源文件时,例如阅读源代码、在源代码和 JDK 之间导航、查看大纲和 Javadoc,以及检测和修复语法错误时,轻量级模式效果最佳。此外,在源文件和 JDK 的范围内支持代码完成。
轻量级模式不解析导入的依赖项,也不构建项目,因此它不支持运行、调试、重构、代码检查或检测语义错误。要使用这些功能,您需要将工作区从轻量级模式切换到标准模式。
您可以通过配置 java.server.launchMode
和以下选项来控制启动时使用的模式
Hybrid
(默认)- 首先,工作区以轻量级模式打开。如果您的工作区包含未解析的 Java 项目,系统将询问您是否切换到标准模式。如果您选择 稍后,它将保持在轻量级模式。您可以单击状态栏上的语言状态项来手动切换到标准模式。Standard
- 工作区以标准模式打开。LightWeight
- 工作区以轻量级模式打开。您可以单击状态栏上的语言状态项来手动切换到标准模式。
语言状态项使用不同的图标指示当前工作区处于哪种模式。
- - 工作区以轻量级模式打开。
- - 工作区正在以标准模式打开的过程中。
- - 工作区以标准模式打开。
单击语言状态项将切换到标准模式。
构建状态
当您在 Visual Studio Code 中编辑 Java 源代码时,Java 语言服务器正在构建您的工作区,以便为您提供必要的语言功能。您可以通过单击状态栏中的语言状态项来查看详细的构建任务状态并了解幕后正在发生的事情。当通知显示语言服务器正在打开 Java 项目时,您也可以选择 查看详情 链接来查看构建任务状态。
其他资源
有几个 Visual Studio Code 扩展支持 Java 的不同构建系统。以下是几个流行的构建系统的扩展。
- 适用于 Java 的 Maven
- 适用于 Java 的 Gradle
- 适用于 Java 的 Bazel ( Bazel 用于
BUILD
文件,不含 Java 集成)
如果您在使用上述功能时遇到任何问题,可以通过提交 issue 与我们联系。
后续步骤
请继续阅读,了解更多关于