项目管理
-
创建项目: 除了通过 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