项目管理
-
创建项目: 除了通过 Maven Archetype 创建项目外,还可以使用以下命令创建一个简单的Java项目:
Java: Create Java Project;如果要创建Spring Boot项目,需要使用 Spring Initializr 扩展。 -
包和依赖关系视图: 扩展还有项目和依赖项的层次结构视图,该视图补充了 Visual Studio Code 提供的文件视图和大纲,因此您无需展开多个子文件夹来查看 Java 包。
-
独立Java文件支持: Visual Studio Code还支持不带项目的Java文件;该解决方案基于文件夹,因此您可以使用Visual Studio Code打开一个文件夹,并且该文件夹中的所有Java文件都将使用所有可用的语言功能正确编译。您还可以运行和调试独立文件。
请确保安装了 Java Extension Pack 插件
VS code支持Maven,Gradle和Eclipse项目。项目构建由扩展自动处理,无需手动触发。
多个源文件夹
如果有多个子文件夹包含项目的源代码,则可以轻松地将这些文件夹添加到源路径(右键文件夹👉 add folder to java source path),然后将正确编译其中的所有代码。然后将正确编译其中的所有代码。

添加外部JAR
您可以使用Java Dependency Viewer将任何JAR文件添加到您的项目中。

另一种将其他 JAR 文件作为依赖项的方法是在独立文件的根目录中创建一个 lib/文件夹,并将 JAR 文件放在其中。如果 lib/文件夹中有 foo-source.jar,则会自动检测 foo.jar 的源。

在配置文中,有一个设置java.project.referencelibaries。下面是有关如何自定义此设置的详细信息。
Include libraries
使用 glob 模式描述要引用的库。
例如:
"java.project.referencedLibraries": [
"library/**/*.jar",
"/home/username/lib/foo.jar"
]
上述设置将添加工作区库文件夹中的所有 .jar 文件以及 foo.jar,从指定的绝对路径添加到项目的外部依赖项。
然后,VS Code 监视引用的库,如果对这些相关文件进行任何更改,将刷新项目。
默认情况下,VS Code 将使用 glob 模式lib/**/*.jar 引用工作区的 lib 目录中的所有 JAR 文件。
Exclude some libraries
如果要从项目中排除某些库,可以展开java.project.referencedlibries以使用include/exclude字段并添加exclude glob模式:
|
|
在上面的示例中,library/sources文件夹中的任何二进制JAR文件都将作为项目的外部依赖项被忽略。
Attach source jars
默认情况下,引用的{binary}.jar将尝试在同一目录下搜索{binary}-sources.jar,如果找到一个匹配项,则将其附加为source。
如果要手动将JAR文件指定为源附件,可以在sources字段中提供键值映射:
|
|
这样,bar-src.jar就作为其源附加到 bar.jar。
如果VS Code因类路径问题引发错误,请尝试通过设置CLASSPATH 环境变量或使用JAR文件的路径编辑.classpath 文件来手动设置类路径:
|
|
在一些罕见的情况下,您可能需要通过命令面板执行 Java: Clean the java language server workspace 命令来清理Java工作区,以让语言服务器(language server )重新构建依赖项。
配置多个JDK
随着Java的发展,Java开发人员有时需要处理多个Java运行时。
Java扩展支持通过java.configuration.runtimes 针对Java执行环境进行首选项映射。VS Code将检测项目所需的运行时,并选择适当的运行时。
|
|
运行时名称必须是以下之一:" J2SE-1.5"," JavaSE-1.6"," JavaSE-1.7"," JavaSE-1.8"," JavaSE-9"," JavaSE-10"," JavaSE-11"," JavaSE-12"," JavaSE-13"。我们将使用每个支持的JDK版本更新列表。
VSCode 的 redhat.java 插件会在项目和子项目中生成,
.settings/、.project、.classpath、.factorypath等文件,所以在生成.gitignore时记得添加 code-java ,生成的内容如下:
1 2 3 4 5 6 7 8 9 10 11# Created by https://www.gitignore.io/api/code-java # Edit at https://www.gitignore.io/?templates=code-java ### Code-Java ### # Language Support for Java(TM) by Red Hat extension for Visual Studio Code - https://marketplace.visualstudio.com/items?itemName=redhat.java .project .classpath factoryConfiguration.json # End of https://www.gitignore.io/api/code-java
Maven
由插件 Maven for Java扩展 提供支持。
加载Maven项目后,扩展将被激活,它将自动扫描pom.xml工作区中的文件,并在侧栏中显示所有Maven项目及其模块。
解析未知类型
Maven扩展还支持搜索Maven Central来解析源代码中的未知类型。您可以通过选择悬停上显示的 “Resolve unknown type” (解析未知类型) 链接来执行此操作。

使用 pom.xml
Maven扩展提供代码片段和自动补全功能;并且支持基于本地 Maven 存储库来添加 Maven 依赖项;在pom.xml 文件中添加新依赖项时会更加的方便。

该扩展还可以让你能够生成有效的 POM

您还可以使用命令 Maven:添加依赖关系(或maven.project.addDependency)来在pom.xml中添加新的依赖关系。该过程是交互式的。

您还可以通过Java Dependency Viewer添加依赖关系,该该扩展同样可以调用Maven命令来完成添加。

执行Maven命令和目标(goal )
通过右键单击资源管理器中的每个Maven Projects,您可以方便地运行Maven目标(goal )。

该扩展程序还保留了每个项目的 goal 历史记录,因此您可以快速重新运行上一个命令,这在运行长的自定义 goal 时非常有用。
重新运行 goal 有两种方法:
- 命令面板>选择
Maven: History> 选择项目 > 从历史记录中选择命令。 - 右键单击项目 > 单击 History > 从历史记录中选择命令。

您还可以在设置中指定自己喜欢的命令,以供将来执行。

要调试Maven目标,请右键单击目标并开始调试。Maven扩展将使用正确的参数调用Java调试器。这是一个方便,省时的功能。

从Maven原型生成项目
此扩展提供的另一个方便的功能是从 Archetype 生成Maven项目。该扩展程序加载在本地/远程目录中列出的原型。选择后,分机将发送mvn archetype:generate -D...到终端。
有两种方法可以生成Maven项目:
- 从命令面板中,输入
Maven: Generate from Maven Archetype,( Maven:从Maven原型生成) 。 - 右键单击一个文件夹,然后选择
Generate from Maven Archetype(" 从Maven原型生成")。

构建状态
当您在Visual Studio Code中编辑Java源代码时,需要 Java language server 在后台构建您的工作区以为您提供必要的语言功能。单击右下角状态栏中的 language server 状态栏图标(正在构建时是转圈的图标🔄,当构建完成时是一个赞的大拇指图标👍),可以查看详细的构建任务状态,并观察幕后情况。

除了Maven,如果您使用Bazel来构建和测试您的项目,那么还会有一个Bazel扩展
参考
VS Code中的Java项目管理:Maven Support, Java Package, and Dependency Management in Visual Studio Code