Extension Pack for Java
Language Support for Java™ by Red Hat
Startup
配置项 | 作用 |
---|---|
"java.jdt.ls.java.home": "" | 指定 Eclipse JDT Language Server 的 java 版本,负责提供代码补全、导航、重构、语法检查、重构、格式化等等功能。此项配置依赖 jdk 版本为 11(包含) 以上 比如语法补全,如果这项配置的是 jdk17,如果项目用 jdk8(pom指定),还是会提示jdk8的语法 |
"java.jdt.ls.vmargs": "" | Eclipse JDT Language Server 的 jvm 参数配置(最大最小堆内存,指定垃圾收集器等) |
"java.server.launchMode": "Hybrid" | Eclipse JDT Language Server 的启动模式:Hybrid 、LightWeight 、Standard Hybrid:默认值,适合大多数场景。它会根据项目的大小和复杂度自动选择最佳启动方式 LightWeight:果你的项目较小,且希望快速启动 Standard:如果你的项目非常大,且需要更高的稳定性 |
"java.configuration.workspaceCacheLimit": 90 | 该配置项用于设置工作区缓存的最大内存(java.jdt.ls.vmargs)占用百分比 工作区缓存用于存储项目的元数据(如类路径、依赖关系等),影响快代码导航、补全等功能的速度 |
"java.sharedIndexes.enabled": "auto" | 是否启用 共享索引 功能:auto 、false 、true 共享索引保存的是项目的元数据(如类路径、符号索引等) true:项目比较大,依赖和引用很多 false:小型项目,不复杂 auto:根据项目规模和复杂度自动决定是否启用共享索引 |
"java.sharedIndexes.location": "" | 共享索引存储的位置,mac 默认是 ~/.shared-indexes |
"java.jdt.ls.lombokSupport.enabled": true | 是否启用 lombok,这个估计必须打开,多人开发项目时你不用别人也会用 |
"java.jdt.ls.protobufSupport.enabled": true | 启用或禁用 Protobuf 支持(Google 开发的一种数据序列化格式) 如果启用,插件会识别 .proto 文件,并为其提供语法高亮、代码补全、导航等功能 |
"java.jdt.ls.androidSupport.enabled": "auto" | 用于启用或禁用 Android 支持。如果启用,插件会识别 Android 项目,并为其提供特定的语言支持功能 |
"java.jdt.ls.javac.enabled": "off" | 是否启用 javac 编译器。如果禁用,使用 Eclipse JDT(ECJ)编译器 javac 是 Oracle 官方编译器兼容性好、速度慢、需要 JDK23+ ECJ 是 Eclipse 开发编译器,优势是编译速度快、但是可能不兼容高版本的 jdk 语法 |
"java.trace.server": "off" | |
"redhat.telemetry.enabled": null | 是否启用 遥测(Telemetry) 功能。遥测功能用于收集插件的使用数据,以帮助开发团队改进插件 |
Project Import/Update
配置项 | 作用 |
---|---|
"java.import.projectSelection": "automatic" | 用于设置项目导入的模式。它决定了插件在打开工作区时是否自动检测和导入项目,或者是否需要手动选择项目 |
"java.configuration.updateBuildConfiguration": "interactive" | 用于设置项目构建配置的更新模式。 它决定了插件在检测到项目配置文件发生变化时,是否自动更新构建配置,或者是否需要用户确认。"automatic" :自动更新构建配置,无需用户确认"interactive" (默认值):在更新构建配置前,提示用户确认"disabled" :禁用自动更新构建配置功能。 |
"java.import.exclusions": [ "/node_modules/", "/.metadata/", "/archetype-resources/", "/META-INF/maven/" ] |
在导入 Java 项目时需要 排除的目录或文件。通过配置该项,可以避免插件扫描和导入不必要的文件或目录,从而提升项目导入的性能 |
"java.import.generatesMetadataFilesAtProjectRoot": false | 用于控制是否在项目根目录生成元数据文件 true:插件会在项目根目录生成 .classpath 和 .project 等文件false:如果禁用,插件不会生成这些文件 |
"java.project.encoding": "ignore" | 处理项目中的 文件编码,默认的 ignore 表示不处理。如果配置成 UTF-8 就会把所有文件的文件编码转成 UTF-8 |
"java.project.importHint": true | 于控制是否显示 项目导入提示。这个配置项决定了插件在检测到未导入的项目时,是否提示用户导入项目(第一次打开还未完全导入,强制退出,第二次进来时这个项目就是未导入的项目) |
"java.project.importOnFirstTimeStartup": "automatic" | 在 首次启动插件时 如何导入 Java 项目。这个配置项决定了插件在第一次运行时是否自动检测并导入项目,或者是否需要用户手动操作"automatic" (默认值):自动检测并导入工作区中的所有 Java 项目。"manual" :在首次启动时,提示用户手动选择要导入的项目。 "disabled" :在首次启动时,不自动导入任何项目。 |
"java.project.resourceFilters": [ "node_modules", "\.git" ] |
指定的目录和文件不会加载为静态资源 |
"java.showBuildStatusOnStart.enabled": "notification" | 用于控制 项目启动时是否显示构建状态。这个配置项决定了插件在项目启动时,如何通知用户项目的构建状态(如成功、失败或警告)"notification" (默认值):在通知栏显示构建状态"statusbar" :在状态栏显示构建状态"off" :不显示构建状态 |
Unmanaged Folder
配置项 | 作用 |
---|---|
"java.project.sourcePaths": [] | 指定 Java 项目的 源代码路径。idea 中右键文件夹 make as source |
"java.project.outputPath": "" | 指定 Java 项目的 输出路径(即编译后的 .class 文件的存放目录) |
"java.project.referencedLibraries": [ "lib/**/*.jar" ] |
手动指定 Java 项目的 引用库(即项目依赖的外部 JAR 文件或目录) |
配置项 java.project.outputPath
是存放 java 文件 编译 后的 class 文件(中间产物)
Project Manager For Java
插件的配置项 java.project.exportJar.targetPath` 是 打包 后生成的可执行的 jar (最终产物)
Maven
配置项 | 作用 |
---|---|
"java.import.maven.enabled": true | 是否启用 Maven 项目支持。如果启用,插件会自动检测工作区中的 Maven 项目(即包含 pom.xml 文件的项目),并导入其依赖和配置 |
"java.import.maven.offline.enabled": false | 否启用 Maven 的离线模式。 fasle:不启用离线模式,也就是启用在线模式 true:启用离线模式,永不拉取远程 pom 依赖,只使用本地缓存的依赖 |
"java.import.maven.disableTestClasspathFlag": false | 是否禁用 Maven 在导入时为测试类(test classes)指定单独的类路径false (默认):VS Code 会遵循 Maven 的标准行为,为测试代码使用单独的类路径,以确保生产代码与测试代码的依赖隔离。true :禁用测试类路径标志,测试类与主代码共享类路径。这通常不是推荐的做法,因为可能会导致依赖混乱。 |
"java.maven.downloadSources": false | 指定是否在导入 Maven 项目时下载项目依赖的源代码,(配置为 false 表示不下载,一般需要才下载) |
"java.maven.updateSnapshots": false | 控制是否在导入或构建 Maven 项目时自动更新 SNAPSHOT 版本的依赖 SNAPSHOT 版本是 Maven 中表示正在开发中的版本,通常这些版本会经常变化 false :在导入或构建项目时不会自动检查或更新 SNAPSHOT 版本的依赖true :则会自动检查和下载最新的 SNAPSHOT 版本 |
"java.configuration.maven.userSettings": null | 用户级别的 maven setting 文件 |
"java.configuration.maven.globalSettings": null | 全局的 maven setting 文件 |
"java.configuration.maven.notCoveredPluginExecutionSeverity": "warning" | "warning" :你可以在不打断构建的情况下,得到关于插件未绑定生命周期阶段的警告,提醒你检查配置"error" :如果你希望更严格控制构建生命周期,可以设置为错误,确保所有插件都正确绑定到生命周期阶段"ignore" :如果你不关心插件是否绑定到生命周期阶段,可以选择忽略相关的警告或错误 |
"java.configuration.maven.defaultMojoExecutionAction": "ignore" | 控制了 Maven 插件的 Mojo 执行默认行为"execute" :如果 Mojo 没有绑定到任何生命周期阶段,Maven 会默认执行这个 Mojo"ignore" :如果 Mojo 没有绑定到任何生命周期阶段,Maven 会忽略这个 Mojo,不会执行它 |
"java.configuration.maven.lifecycleMappings": null | 使用默认的 Maven 生命周期映射 |
Gradle
Build
配置项 | 作用 |
---|---|
"java.autobuild.enabled": true | 启用或禁用自动构建功能true (默认值):在文件保存时自动构建项目false :禁用该功能也会生成 class 文件,但不会重新加载到 JVM,不具有 jrebel 的功能 |
"java.maxConcurrentBuilds": 1 | 用于设置最大并发构建数(多个项目同时构建) |
"java.settings.url": null | 用于指定一个 JSON 文件的 URL,该文件包含 Java 构建相关的配置 |
"java.compile.nullAnalysis.mode": "interactive" | 空指针分析interactive :开启,并且实时在代码编辑时给予反馈automatic :开启,但不实时反馈,在保存和构建时给予反馈disable :关闭(感觉可以关闭,因为这个配置影响的是下面3个空指针检查的,下面这3个说实话没啥用) |
"java.compile.nullAnalysis.nonnull": [ "javax.annotation.Nonnull", "org.eclipse.jdt.annotation.NonNull", "org.springframework.lang.NonNull" ] |
java.compile.nullAnalysis.mode 不是 disable 时当前配置生效 指定用于标识 非空(Non-null) 类型的注解。标注了这些注解的方法参数、属性、返回值在使用时如果为空会给出提示 |
"java.compile.nullAnalysis.nonnullbydefault": [ "javax.annotation.ParametersAreNonnullByDefault", "org.eclipse.jdt.annotation.NonNullByDefault", "org.springframework.lang.NonNullApi" ] |
java.compile.nullAnalysis.mode 不是 disable 时当前配置生效 该配置项用于指定 默认非空 的注解类型。当启用这些注解时,整个包或类中的方法参数、返回值等会默认被视为非空,除非显式标注了 @Nullable ,常用于类或包级别,表示该范围内的所有元素默认是非空的 |
"java.compile.nullAnalysis.nullable": [ "javax.annotation.Nullable", "org.eclipse.jdt.annotation.Nullable", "org.springframework.lang.Nullable" ] |
java.compile.nullAnalysis.mode 不是 disable 时当前配置生效 指定用于标识 可以为空(Non-null) 类型的注解(和 java.compile.nullAnalysis.nonnull 相反) |
"java.errors.incompleteClasspath.severity": "warning" | 控制类路径不完整问题的提示级别。可以是以下值之一ignore : 忽略类路径不完整的问题,不显示任何提示info : 以信息级别提示类路径不完整的问题warning : 以警告级别提示类路径不完整的问题error : 以错误级别提示类路径不完整的问题 |
Installed JDKs
配置项 | 作用 |
---|---|
"java.configuration.detectJdksAtStart": true | 用于启用或禁用插件启动时的 JDK 自动检测功能 |
"java.configuration.runtimes": [{ "name": "JavaSE-1.8", "path": "/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home" }, { "name": "JavaSE-17", "path": "/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home", "default": true } ] |
指定 jdk 版本 当 java.configuration.detectJdksAtStart 为 true,java.configuration.runtimes 也制定了 jdk 时 java.configuration.runtimes 更优先 |
Formatting
配置项 | 作用 |
---|---|
"java.format.enabled": true | 是否启用 代码格式化 功能。如果启用,插件会在保存文件或手动触发时自动格式化 Java 代码 |
"java.format.settings.url": null | 指定 代码格式化规则文件的 URL。如果不指定默认使用 Eclipse 的代码格式化规则https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml 是 google 提供的格式化规则 |
"java.format.settings.profile": null | 也是指定 代码格式化规则的配置文件 和上面的配置二选一即可。如果同时存在,上面的配置优先级更高 |
"java.format.comments.enabled": true | 和上面两项类似,只不过这个配置是格式化注释的 |
"java.format.onType.enabled": true | 是否在输入 ; 、} 、Enter 时格式化; :格式化当前行} :格式化括号内的部分Enter :当前行或当前代码块 |
Code Completion
配置项 | 作用 |
---|---|
"java.completion.enabled": true | 是否启用代码补全 |
"java.completion.postfix.enabled": true | 是否开启后缀补全功能.for **for **(var item : myList) { ... }.if **if **(condition) { ... }.while while (condition) { ... }.try try { ... } catch (Exception e) { ... }.var var result = expression;.return return expression;可以通过 java.completion.postfix.templates 自定义提示补全 |
"java.completion.chain.enabled": false | 否启用 链式代码补全(Chain Completion) 功能。链式代码补全是一种高级的代码补全方式,允许你在一个表达式中连续调用多个方法或属性 如果启用,插件会在你输入一个表达式后,自动提示该表达式可以调用的方法或属性 myList.stream().filter(...).map(...) |
"java.completion.favoriteStaticMembers": [ "java.lang.System.out", "org.junit.Assume.", "org.junit.jupiter.api.Assertions.*" ] |
指定常用的静态成员(如 System.out ),在代码补全中优先显示比如输入 System 后,out 排在前面 |
"java.completion.filteredTypes": [ "java.awt.", "com.sun.", "sun.", "jdk.", "org.graalvm.", "io.micrometer.shaded." ] |
指定需要过滤的类型,这些类型不会进行提示 |
"java.completion.guessMethodArguments": "auto" | 否在代码补全时 猜测方法参数。这个配置项决定了插件在补全方法调用时,是否自动填充可能的参数值 调用一个方法时,输入了方法名,会猜测这个方法的参数来提示 |
"java.completion.matchCase": "firstLetter" | 用于控制代码补全时的 匹配大小写规则"firstLetter" (默认值):仅匹配第一个字母的大小写"off" :不区分大小写 |
"java.completion.importOrder": [ "#", "java", "javax", "org", "com", "" ] |
指定导入语句的排序规则,比如当前配置为 java 在 javax 前面 import java.lang.Integer import javax.annotation.Resource |
"java.completion.engine": "ecj" | 代码补全的引擎(和编译器类似,局限性也类似)ecj :使用 Eclipse Compiler for Java (ECJ) 作为补全引擎javac :使用 JDK 自带的 javac 作为补全引擎ecj 最大的好处是速度快,如果项目使用的 jdk 版本过高就使用 javac |
"java.completion.collapseCompletionItems": false | 候选项有相似的是否折叠,false 表示不折叠 比如一个方法,返回值、方法名、参数个数都相同,但是参数类型不同。如果折叠就显示这一个方法;如果不折叠,所有的方法都是现实 |
"java.completion.lazyResolveTextEdit.enabled": true | 是否启用 延迟解析文本编辑(Lazy Resolve Text Edit) 功能 当选择了候选的提示项后,才做文本编辑(调整代码的格式,如缩进、空格等) |
"java.completion.maxResults": 0 | 代码补全的最大结果数,0表示不限制数量(全都会显示) |
"java.signatureHelp.description.enabled": false | 当调用一个方法时,提示时要不要显示方法描述(包含 doc 等,方法的全部信息,太详细了) |
"java.signatureHelp.enabled": true | 当调用一个方法时,提示时要不要显示方法签名(仅显示方法名和参数) |
Code Generation
配置项 | 作用 |
---|---|
"java.templates.fileHeader": [ "/**", " * Copyright (c) ${year} ${user}. All rights reserved.", " * Created on ${date}.", " */" ] |
定义版权,在文件的第一行 |
"java.templates.typeComment": [ "/**", " * ${type_name}", " * ", " * This class is used to ... "," * ", " * @author ${user}", " * @version 1.0", " * @since ${date}", " */" ] |
定义类描述,在类上 |
"java.codeGeneration.insertionLocation": "afterCursor" | 用于设置代码生成时的插入位置"afterCursor" (默认值):将生成的代码插入到光标之后"beforeCursor" :将生成的代码插入到光标之前 |
"java.codeGeneration.addFinalForNewDeclaration": "none" | 用于设置是否在生成新变量声明时添加 final 关键字"none" (默认值):不为新变量声明添加 final 关键字"local" :仅为局部变量声明添加 final 关键字"field" :仅为字段声明添加 final 关键字"all" :为所有新变量声明(包括局部变量和字段)添加 final 关键字 |
"java.codeGeneration.generateComments": false | 是否自动生成注释 |
"java.codeGeneration.hashCodeEquals.useInstanceof": false | 在生成 hashCode() 和 equals() 方法时,是否使用 instanceof 关键字来检查对象类型 |
"java.codeGeneration.hashCodeEquals.useJava7Objects": false | 是否使用 java7 的 apitrue :使用 Java 7 的 Objects 类来简化 equals() 和 hashCode() 的实现false :不使用 Java 7 的 Objects 类,手动编写 equals() 和 hashCode() 方法的逻辑 |
"java.codeGeneration.toString.codeStyle": "STRING_CONCATENATION" | 自动生成 toString() 方法时字符串的连接方式"STRING_CONCATENATION" :表示在生成的 toString() 方法中使用 + 运算符来拼接字符串"STRING_BUILDER" :表示在生成的 toString() 方法中使用 StringBuilder 来拼接字符串"STRING_BUILDER_CHAINED" :StringBuilder 的链式调用,更简洁"STRING_FORMAT" :使用 String.format() 方式 |
"java.codeGeneration.toString.limitElements": 0 | 自动生成 toString() 方法时,对于集合类型字段(如 List , Set , Map 等)限制显示的元素数量。0 时,表示不限制集合字段的元素数量,也就是说,生成的 toString() 方法会包含集合中所有的元素2 时,集合中第三个元素开始会被省略 |
"java.codeGeneration.toString.listArrayContents": true | 自动生成 toString() 方法时,是否包含数组或集合的内容true (默认值):生成的 toString 方法会包含数组或集合的内容false :生成的 toString 使用内存地址表示这个数组或集合 |
"java.codeGeneration.toString.skipNullValues": false | 自动生成 toString() 方法时,是否不包含值为 null 的字段 |
"java.codeGeneration.toString.template": "${object.className} [${member.name()}=${member.value}, ${otherMembers}]" | 配置 toString() 方法的生成规则${object.className} : 当前类的名称${member.name()} : 当前成员的名称${member.value} : 当前成员的值${otherMembers} : 其他成员的值 |
"java.codeGeneration.useBlocks": false | 自动生成 toString() 方法时,是否使用代码块来格式化显示false :在一行字符串中显示true :会有换行 |
"java.edit.smartSemicolonDetection.enabled": false | 换行时进行分号检测false :禁用智能分号检测,编辑器不会自动补全分号true :启用智能分号检测,编辑器会在代码缺少分号时自动添加 |
Code Action
配置项 | 作用 |
---|---|
"java.cleanup.actions": [ "renameFileToType" ] |
执行代码清理时要做些什么(代码清理是VS Code 的动作,右键文件 -> Source Action -> Clean Up),比如renameFileToType :确保文件名与主类或接口名称一致addOverride :覆盖父类或接口方法加上 @Override 注解 |
"java.saveActions.organizeImports": false | 保存文件时,自动整理导入的包,无用的会移除 |
"java.sources.organizeImports.starThreshold": 99 | 当某个包导入的类达到 99 时转成 * |
"java.sources.organizeImports.staticStarThreshold": 99 | 和上面一样吗,也是配置转成 * 的阈值。上面是普通导包,这里指的是静态导包 import static java.lang.Math.PI; import static java.lang.Math.pow; import static java.lang.Math.*; |
"java.codeAction.sortMembers.avoidVolatileChanges": true | 用于控制 排序类成员时是否避免不稳定的更改。这个配置项决定了插件在排序类成员(如字段、方法等)时,是否尽量避免引入不必要的更改 比如 cleanup 中配置触发的动作有可能增加代码行或删除代码行,特别是如果有代码被 volatile 修饰的话尽量不动 再比如 VS Code 中本来就有排序功能(右键文件 -> Source Action -> Sort Members) |
"java.quickfix.showAt": "line" | 用于设置快速修复建议的显示位置"line" (默认值):在问题行显示快速修复建议"problem" :在问题位置显示快速修复建议 |
"java.refactoring.extract.interface.replace": true | 用于设置将类提取为接口时是否替换原始类引用(将一个 class 抽象成一个 interface + class,其他地方如果用到了这个类,是否要用接口来接收) AClass 类 提取未接口后变成 AInterface 和 AClass,其他地方的引用也会使用 AInterface |
"java.saveActions.cleanup": true | 是否启动清理动作 |
Code Navigation
Debug For Java
Java Debug
Maven For Java
Maven For Java
配置项 | 作用 |
---|---|
"maven.dependency.enableConflictDiagnostics": "true" | 是否启用 Maven 依赖冲突的诊断功能true :开启诊断功能,当冲突或远程仓库拉取不到时会提示false :不开启 |
"maven.excludedFolders": [ "/.*", "/node_modules", "/target", "/bin", "**/archetype-resources" ] |
指定 Maven 项目中需要排除的文件夹 |
"maven.executable.options": "" | 用于指定运行 Maven 命令时的附加命令行选项 常见选项: -D 、-P 、-T 、-X 、-q 、-o 、-f 、-s 比如跳过测试,传递 jvm 参数等 |
"maven.executable.path": "" | 指定 Maven 可执行文件的路径 为空表示使用电脑默认的 如果电脑识别不到或安装了多个 maven 或者可以手动指定 mac 示例 /Users/cyrus/MyApp/maven/apache-maven-3.9.9/bin/mvn |
"maven.executable.preferMavenWrapper": "true" | 是否优先使用 Maven Wrapper(mvnw 或 mvnw.cmd )来执行 Maven 命令先了解 Maven Wrapper 的知识有助于理解这个配置的作用 |
"maven.explorer.projectName": "${project.name}" | 设置 Maven 项目在资源管理器中的显示名称 支持变量: ${project.name} 、${project.artifactId} 、${project.version} 、${project.groupId} |
"maven.pomfile.autoUpdateEffectivePOM": false | 当修改了 POM 文件是否 自动更新有效 POM(Effective POM) 有效 POM:当前的项目对应抽象的 POM(项目的 POM、父 POM、激活的Profile、默认配置等这些组合起来才是当前项目真正的 POM) true :自动刷新有效 POM,大项目性能不好false :手动刷新有效 POM(pom.xml 文件上右键,选择 Update Effective POM) |
"maven.pomfile.globPattern": "**/pom.xml" | 指定匹配 pom.xml 文件的 Glob 模式(VS Code 根据这个规则找到所有的 pom 文件来加载依赖默认值: "**/pom.xml" ,即递归匹配所有目录下的 pom.xml 文件 |
"maven.pomfile.prefetchEffectivePom": false | 与 maven.pomfile.autoUpdateEffectivePOM 效果一致,触发时间不同maven.pomfile.prefetchEffectivePom :打开 POM 文件时触发maven.pomfile.autoUpdateEffectivePOM :POM 文件更改时触发 |
"maven.projectOpenBehavior": "Interactive" | 打开 Maven 项目时的行为模式Interactive : 交互模式。插件会提示用户选择是否加载项目AddToWorkspace : 自动将项目添加到工作区,但不立即加载Open : 自动打开(立即加载)None :不执行任何操作,希望完全手动控制项目加载 |
"maven.settingsFile": "" | maven setting 文件,默认是 ~/.m2/settings.xml |
"maven.showInExplorerContextMenu": "true" | 控制 Maven 项目是否在文件资源管理器(Explorer)的右键菜单中显示 比如运行 maven 命令,刷新依赖等 |
有效 POM 和项目的依赖不是一个东西!!!
有效 POM 决定项目的依赖,Maven For Java 的配置项决定有效 POM 的实时刷新与否
项目的依赖是 Project Mananger For Java 的配置项决定的
Project Manager For Java
Java Project Manager
配置项 | 作用 |
---|---|
"java.dependency.autoRefresh": true | 是否根据有效 POM 自动刷新项目的依赖 |
"java.dependency.packagePresentation": "flat" | 依赖包在项目视图中的展示方式(类似 idea 和 eclipse 默认的包路径)flat : 扁平结构。所有依赖包在同一层级显示,不区分层级关系hierarchical : 层级结构。依赖包按照其层级关系显示(例如,依赖的依赖会嵌套显示) |
"java.dependency.refreshDelay": 2000 | 达到条件后,多长时间刷新项目依赖,这里是 2 秒 |
"java.dependency.showMembers": false | 否在依赖视图中显示依赖包的成员false 效果:Dependencies ├── com.example:libraryA:1.0.0 ├── com.example:libraryB:1.0.0 true 效果:Dependencies ├── com.example:libraryA:1.0.0 │ ├── com.example.ClassA │ │ ├── method1() │ │ ├── method2() │ │ └── field1 │ └── com.example.ClassB ├── com.example:libraryB:1.0.0 |
"java.dependency.syncWithFolderExplorer": true | 依赖视图和文件夹资源管理器之间的同步行为,true:同步;false:不同步 VS Code 中看依赖时编辑器中的目录层级是否和真实 jar 中一致 |
"java.project.explorer.showNonJavaResources": true | VS Code 中看依赖时,是否显示非 Java 资源文件(只显示 java 文件还是配置文件、静态资源都显示)true :全都显示;false :只显示 java 文件 |
"java.project.exportJar.targetPath": "${workspaceFolder}/${workspaceFolderBasename}.jar" | 设置导出 Java 项目时生成的 JAR 文件的目标路径 项目 mvn package 命令打包后的可执行 jar 程序 |