在VS Code中管理Java项目
Java 项目管理器扩展帮助您管理 Java 项目及其依赖项。它还帮助您创建新的 Java 项目、包和类。为了在 Visual Studio Code 中获得完整的 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.xml
或build.gradle
)。VS Code for Java将检测您的项目并自动导入它们。
当你在项目中添加一个新模块时,你可以触发命令Java: Import Java projects in workspace将它们导入到你的工作区。此命令有助于将新项目导入工作区,而无需重新加载VS Code窗口。
导出为JAR
您可以从项目视图中导出您的构建到JAR,或者通过运行命令Java: Export 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.xml
或 build.gradle
)。你可以点击 查看如何进行这些更改。点击 将导航到项目的构建脚本文件。
更改未管理文件夹的JDK
要为未管理的文件夹(没有任何构建工具)更改JDK,您可以点击按钮。它将列出所有JDK,您可以为未管理的文件夹选择一个。
下载JDKs
如果你想下载一个新的JDK,你可以点击download
链接,或者在命令面板中触发Java: Install New JDK命令(⇧⌘P (Windows, Linux Ctrl+Shift+P))。它将打开一个新视图,引导你下载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节点旁边的+图标来添加依赖项。
管理非托管文件夹的依赖项
如果你的项目是一个没有任何构建工具的非托管文件夹。你可以通过点击+图标或-图标来管理依赖项,这些图标位于引用库节点或其下的项目上,或者你可以直接将你的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构建系统。以下是几个流行构建系统的扩展。
- Maven for Java
- Gradle for Java
- Bazel for Java (Bazel 用于
BUILD
文件,没有 Java 集成))
如果您在使用上述功能时遇到任何问题,可以通过提交issue联系我们。
下一步
继续阅读以了解更多关于:
- Java editing - 探索VS Code中的Java编辑功能。
- Java debugging - 了解如何使用 VS Code 调试您的 Java 项目。
- Java testing - 使用 VS Code 进行 JUnit 和 TestNG 测试。
- Java extensions - 了解VS Code中更多有用的Java扩展。