资料来源
- VScode docs
- Extension Pack for Java
- Maven for Java
- Debugger for Java
- Project Manager for Java
- Test Runner for Java
- Language Support for Java(TM) by Red Hat
- Spring Initializr Java Support
- Spring Boot Dashboard
- Spring Boot Extension Pack
- Spring Boot Tools
- Lombok Annotations Support for VS Code
- Gradle for Java
- Java Decompiler
- Java prettier formatter
- IntelliCode
- IntelliJ IDEA Keybindings
- MybatisX
环境配置
提前配置好java所需要的环境
- jdk(需要准备自己需要的jdk,和最新的jdk来起动插件)
- maven
- gradle(如果需要的话)
下载java相关插件(可以根据自己需求选择安装加 * 号的必须安装)
- * Extension Pack for Java
- * Maven for Java
- * Debugger for Java
- * Project Manager for Java
- * Test Runner for Java
- * Language Support for Java(TM) by Red Hat
- Spring Initializr Java Support
- Spring Boot Dashboard
- Spring Boot Extension Pack
- Spring Boot Tools
- Lombok Annotations Support for VS Code
- Gradle for Java
- Java Decompiler
- Java prettier formatter
- IntelliCode
- IntelliJ IDEA Keybindings
- MybatisX
如下是
settings.json配置,注意将路径变更为自己的,翻译为deepl翻译器机翻,应后期还进行了调整部分注释不对位置请查看插件文档。json"maven.excludedFolders": [ "**/.*", "**/node_modules", "**/target", "**/bin", "**/archetype-resources" ], // 指定“mvn”可执行文件的绝对路径。当此值为空时,它会根据“maven.executable.preferMavenWrapper”的值尝试使用“mvn”或“mvnw”。例如:/usr/local/apache-maven-3.6.0/bin/mvn "maven.executable.path": "E:\\Tools\\maven\\bin\\mvn", // 指定是否首选使用 Maven 包装器。如果为 true,它将尝试通过向上浏览父文件夹来使用“mvnw”。如果未找到 false 或 'mvnw',则改为在 PATH 中尝试 'mvn'。 "maven.executable.preferMavenWrapper": false, // “打开新创建项目的默认方法。Add to Workspace:添加到工作区 Interactive:互动式 None:无 Open:打开 "maven.executable.options": "", "maven.projectOpenBehavior": "Open", // 指定是否在检测到更改时自动更新 effective-pom。 "maven.pomfile.autoUpdateEffectivePOM": true, // 指定用于查找 pom.xml 文件的 glob 模式。 "maven.pomfile.globPattern":"**/pom.xml", // 如果此值为 true,并且设置 java.home 具有值,则在创建新的终端窗口时,环境变量 JAVA_HOME 将设置为 java.home 的值。 "maven.terminal.useJavaHome":false, // 指定环境变量名称和值的数组。这些环境变量值将在执行 Maven 之前添加。:要设置的环境变量的名称。:要设置的环境变量的值。environmentVariablevalue "maven.terminal.customEnv":[], // 指定要执行的预定义收藏夹命令。:命令的短名称。:收藏夹命令的内容。aliascommand "maven.terminal.favorites":[], // 指定查看 Maven 项目的方式。可能的值: , .flathierarchical "maven.view": "flat", "maven.settingsFile": "E:\\Tools\\maven\\conf\\settings.xml", "java.jdt.ls.java.home": "E:\\Tools\\jdk\\jdk-17", // 是否启动lombok支持 "java.jdt.ls.lombokSupport.enabled": true, // 指定 Java 文件的类路径不完整时消息的严重性. "java.jdt.ls.vmargs": "--add-opens=java.base/java.io=ALL-UNNAMED -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -Dfile.encoding=UTF-8 -javaagent:\"c:\\Users\\calmly\\.vscode-insiders\\extensions\\vscjava.vscode-lombok-1.0.1\\server\\lombok.jar\"", "java.errors.incompleteClasspath.severity": "warning", // 跟踪 VS Code 与 Java 语言服务器之间的通信。 "java.trace.server":"messages", // 指定对生成文件的修改如何更新 Java 类路径/配置。支持的值为disabled (无任何反应), interactive (每次修改时询问更新情况), automatic (自动触发更新)。 "java.configuration.updateBuildConfiguration":"automatic", // maven设置的settings.xml路径。 "java.configuration.maven.userSettings":"E:\\Tools\\maven\\conf\\settings.xml", // 启用/禁用引用代码镜头。 "java.referencesCodeLens.enabled":false, // 启用/停用实现代码镜头 "java.implementationsCodeLens.enabled":false, // 启用/禁用签名帮助支持(触发时)。 "java.signatureHelp.enabled":false, // 启用/禁用在签名帮助中显示描述。默认为.false "java.signatureHelp.description.enabled":false, // 首选的内容提供商(见vscode-java-decompiler中的第三方反编译器)。 "java.contentProvider.preferred":"dgileadi.java-decompiler", // 通过glob模式将文件夹排除在导入之外。用来否定模式以允许子文件夹导入。你必须要包括一个父目录。顺序很重要。 "java.import.exclusions":[ "**/node_modules/**", "**/.metadata/**", "**/archetype-resources/**", "**/META-INF/maven/**" ], //指定Java扩展所使用的Gradle分布。 // 启用/禁用Gradle导入器。 "java.import.gradle.enabled":true, //使用'gradle-wrapper.properties'文件中的Gradle。默认为.true "java.import.gradle.wrapper.enabled":false, //如果Gradle包装器丢失或被禁用,则使用特定版本的Gradle。 "java.import.gradle.version":"", //如果Gradle包装器丢失或被禁用,并且没有指定'java.import.gradle.version',则从指定的本地安装目录或GRADLE_HOME使用Gradle。 "java.import.gradle.home": "E:\\Tools\\gradle", //为GRADLE_USER_HOME设置。 "java.import.gradle.arguments": "", "java.import.gradle.jvmArguments": "-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8", "java.import.gradle.user.home": "E:\\Tools\\gradle\\.gradle", //启用/禁用 Gradle 离线模式。默认值为 false。 "java.import.gradle.offline.enabled":false, // 启用/禁用 Maven 导入程序 "java.import.maven.enabled":true, // 启用/禁用“自动构建” "java.autobuild.enabled":true, // 设置最大同时进行的项目生成数。 "java.maxConcurrentBuilds":1, // 启用/禁用代码完成支持 "java.completion.enabled":true, // 设置为 true 时,当从中选择方法作为代码辅助建议列表时,将猜测方法参数。 "java.completion.guessMethodArguments":true, // 定义类型过滤器。在内容助手或快速修复建议以及组织导入时,将忽略其完全限定名称与所选筛选器字符串匹配的所有类型。例如,'java.awt.*'将隐藏awt包中的所有类型。 "java.completion.filteredTypes":[ "java.awt.*", "com.sun.*", "sun.*", "jdk.*", "org.graalvm.*", "io.micrometer.shaded.*" ], // 定义静态成员或具有静态成员的类型的列表。 "java.completion.favoriteStaticMembers":[ "org.junit.Assert.*", "org.junit.Assume.*", "org.junit.jupiter.api.Assertions.*", "org.junit.jupiter.api.Assumptions.*", "org.junit.jupiter.api.DynamicContainer.*", "org.junit.jupiter.api.DynamicTest.*", "org.mockito.Mockito.*", "org.mockito.ArgumentMatchers.*", "org.mockito.Answers.*" ], //java.completion.favoriteStaticMembers "java.completion.importOrder":[ "java", "javax", "org", "com" ], // [实验性] 启用/禁用来自服务器上后台进程的进度报告 "java.progressReports.enabled":false, // 启用/禁用缺省 Java 格式化程序。 "java.format.enabled":true, // 指定 Eclipse 格式化程序 xml 设置的 url 或文件路径。 "java.format.settings.url":"", // Eclipse 格式化程序设置中的可选格式化程序配置文件名称。 "java.format.settings.profile":"", // 包括代码格式化过程中的注释。 "java.format.comments.enabled":true, // 启用/禁用按类型格式化 (triggered on ;, } or <return>). "java.format.onType.enabled":false, // 启用/禁用智能折叠范围支持。如果禁用,它将使用 VS Code 提供的基于缩进的默认折叠范围。 "java.foldingRange.enabled":true, // 启用/禁用在导入 Maven 项目的过程中下载 Maven 源工件。 "java.maven.downloadSources":true, // 强制更新快照/版本。默认值为 。false "java.maven.updateSnapshots":false, //在生成哈希码和等于方法时,使用'instanceof'比较类型。缺省值为 。false "java.codeGeneration.hashCodeEquals.useInstanceof":false, // 生成 hashCode 和 equals 方法时,请使用 Objects.hash 和 Objects.equals。此设置仅适用于 Java 7 及更高版本。缺省值为 。false "java.codeGeneration.hashCodeEquals.useJava7Objects":true, // 生成方法时,在 'if' 语句中使用块。缺省值为 。false "java.codeGeneration.useBlocks":true, // 生成方法时生成方法注释。缺省值为 。false "java.codeGeneration.generateComments":true, //用于生成 toString 方法的模板。缺省值为 。${object.className} [${member.name()}=${member.value}, ${otherMembers}] "java.codeGeneration.toString.template":"${object.className} [${member.name()}=${member.value}, ${otherMembers}]", // 用于生成 toString 方法的代码样式。缺省值为 。STRING_CONCATENATION "java.codeGeneration.toString.codeStyle":"STRING_BUILDER_CHAINED", // 生成 toString 方法时跳过空值。缺省值为 。false "java.codeGeneration.toString.skipNullValues":true, // 列出数组的内容,而不是使用本机 toString()。缺省值为 。true "java.codeGeneration.toString.listArrayContents":true, // 限制数组/集合/映射中的项目数,如果为 0,则全部列出。缺省值为 。0 "java.codeGeneration.toString.limitElements":0, //启用/禁用对 Java 的智能选择支持。禁用此选项不会影响 VS Code 内置的基于字和基于括号的智能选择。 "java.selectionRange.enabled":true, // 启动时自动显示构建状态,默认为 。notification:通知 terminal:终端 off: "java.showBuildStatusOnStart.enabled":"notification", //存储已编译输出的工作区的相对路径。 在范围内有效。该设置将影响 Maven 或 Gradle 项目。OnlyWORKSPACENOT "java.project.outputPath":"", //配置用于将本地库引用到 Java 项目的 glob 模式。 "java.project.referencedLibraries":[ "lib/**/*.jar" ], //完成结果的最大数量(不包括代码段)。 (默认值)禁用限制,返回所有结果。如果出现性能问题,请考虑设置合理的限制。0 "java.completion.maxResults": 0, //Standard:提供完整的功能,如智能感知,重构,构建,Maven / Gradle支持等... //LightWeight:以较低的启动成本启动语法服务器。仅提供大纲、导航、javadoc、语法错误等语法功能。轻量级模式不会加载第三方扩展,例如java测试运行程序,java调试器等。 //Hybrid:提供完整的功能,具有更好的响应能力。它启动一个标准语言服务器和一个辅助语法服务器。语法服务器提供语法功能,直到标准服务器准备就绪。语法服务器将在标准服务器完全准备就绪后自动关闭。 // 默认启动模式为 。传统模式是HybridStandard "java.configuration.runtimes": [ { "name": "JavaSE-1.8", "path": "E:\\Tools\\jdk\\jdk-8", "default": true }, { "name": "JavaSE-11", "path": "E:\\Tools\\jdk\\jdk-11" }, { "name": "JavaSE-17", "path": "E:\\Tools\\jdk\\jdk-17" } ], "java.server.launchMode": "Standard", //指定在使用星形导入声明之前添加的导入数,默认值为 99。 "java.sources.organizeImports.starThreshold":99, //指定在使用星形导入声明之前添加的静态导入数,默认值为 99。 "java.sources.organizeImports.staticStarThreshold":99, // 定义允许/不允许的 Gradle 包装器的 SHA-256 校验和。 "java.imports.gradle.wrapper.checksums":[], // 指定首次以混合方式打开文件夹时是否导入 Java 项目。支持的值为(从不导入)、(是否要求导入)(始终导入)。默认为 。 "java.project.importOnFirstTimeStartup":"automatic", // 启用/禁用服务器方式开关信息,当启动时跳过 Java 项目导入时。缺省值为 。true "java.project.importHint": false, //从 Java 语言服务器刷新的文件和文件夹中排除,这可以提高整体性能。例如,[“node_modules”,“.git”] 将排除所有名为“node_modules”或“.git”的文件和文件夹。默认为 [“node_modules”,“.git”]。 "java.import.gradle.java.home": "", "java.project.resourceFilters": [ "node_modules", ".git", ".idea", ".vscode" ], //指定新 Java 文件的文件头注释。支持使用字符串数组配置多行注释,并使用 ${variable} 引用预定义的变量。 "java.templates.fileHeader":[], //指定新 Java 类型的类型注释。支持使用字符串数组配置多行注释,并使用 ${variable} 引用预定义的变量。 "java.templates.typeComment":[], //查找引用时包括 getter、setter 和生成器/构造函数。默认为 true。 "java.references.includeAccessors":true, //Maven 全局设置的路径.xml。 "java.configuration.maven.globalSettings":"E:\\Tools\\maven\\conf\\settings.xml", //启用/禁用 Eclipse 项目的 Maven 源工件下载。 "java.eclipse.downloadSources":false, //显示建议的依赖关系分析扩展。 "java.recommendations.dependency.analytics.show":true, //查找引用时包括反编译的源。默认为 true。 "java.references.includeDecompiledSources":true, //存储源文件的工作区的相对路径。 在范围内有效。该设置将影响 Maven 或 Gradle 项目。OnlyWORKSPACENOT "java.project.sourcePaths":[], //启用/禁用延迟加载类型层次结构中的内容。延迟加载可以节省大量加载时间,但应手动扩展每种类型以加载其内容。 "java.typeHierarchy.lazyLoad":true, //指定源操作生成的代码的插入位置。缺省值为 afterCursor:游标之后 beforeCursor:游标前 lastMember:最后一个成员 "java.codeGeneration.insertionLocation":"afterCursor", //指定工作区 Java 设置的 url 或文件路径。请参阅设置全局首选项 "java.settings.url":"", //在符号搜索中包括源文件的方法声明。缺省值为 。false "java.symbols.includeSourceMethodDeclarations":false, //在问题或行级别显示快速修复。line:一行 problem:问题 "java.quickfix.showAt":"line", //保留未使用的工作区缓存数据的天数(如果已启用)。超出此限制后,可能会删除缓存的工作区数据。 "java.configuration.workspaceCacheLimit":90, //指定是否在项目根目录下生成项目元数据文件(.project、.classpath、.factorypath、.settings/)。缺省值为 。false "java.import.generatesMetadataFilesAtProjectRoot":false, //启用/禁用参数名称的镶嵌提示。支持的值为:none(禁用参数名称提示)、literals(仅为文本参数启用参数名称提示)和all(为文本和非文本参数启用参数名称提示)。 "java.inlayHints.parameterNames.enabled":"all", // Gradle for java配置 //自动检测 Gradle 任务(“打开”或“关闭”) "gradle.autoDetect":"on", //:运行任务时在资源管理器中聚焦任务(布尔值) "gradle.focusTaskInExplorer":true, //处理嵌套项目(布尔值或目录数组) "gradle.nestedProjects":[], //重用任务终端(“任务”[默认]、“全部”或“关闭”) "gradle.reuseTerminals":"task", //调试前清理任务输出缓存(布尔值) "gradle.javaDebug.cleanOutput":true, //在输出面板中显示额外的调试信息(布尔值) "gradle.debug":true, //在执行批处理操作(例如清除任务,停止守护程序等)时禁用警告确认消息(布尔值) "gradle.disableConfirmations":false, //允许并行运行任务,每次运行将创建一个新终端。此配置将覆盖并始终在运行或调试任务时创建新的任务终端。gradle.reuseTerminals "gradle.allowParallelRun":false, // Project Manager for Java // 指定是否在 Java 项目浏览器中显示成员。 false "java.dependency.showMembers":true, //指定在浏览文件时是否将文件夹与 Java 项目资源管理器同步。 true "java.dependency.syncWithFolderExplorer":true, // 指定是否自动将更改从编辑器同步到 Java 项目浏览器。 true "java.dependency.autoRefresh":true, // 检测到更改时调用自动刷新的延迟时间 (ms)。 2000ms "java.dependency.refreshDelay":2000, //指定如何显示包。支持的值为:、。flathierarchical flat "java.dependency.packagePresentation":"hierarchical", //导出 jar 的输出路径。当此设置为空时,将弹出一个文件资源管理器,让用户选择输出位置。 "java.project.exportJar.targetPath":"${workspaceFolder}/${workspaceFolderBasename}.jar", // Debugger for Java //发送到 VS Code 的调试器日志的最低级别,默认为 。warn "java.debug.logLevel":"verbose", // 在“变量”视图中以十六进制格式显示数字,默认为 。false "java.debug.settings.showHex":false, // 在“变量”视图中显示静态变量,默认为 。false "java.debug.settings.showStaticVariables":true, //在“变量”视图let中显示完全限定的类名,默认为 。false "java.debug.settings.showQualifiedNames":true, //在“变量”视图let中显示集合和映射类的逻辑结构,默认为 。true "java.debug.settings.showLogicalStructure":true, //显示“变量”viewlet中重写“toString”方法的所有类的'toString()'值,默认为.true "java.debug.settings.showToString":true, // “变量”或“调试控制台”viewlet 中显示的字符串的最大长度,长度超过此长度的字符串将被修剪,默认值表示不执行修剪。0 "java.debug.settings.maxStringLength":0, // 在“变量”或“调试控制台”视图中格式化时的精度加倍。 "java.debug.settings.numericPrecision":0, // 在调试期间重新加载更改的 Java 类,缺省值为 。确保未对 VSCode Java 禁用 。有关用法和限制的更多信息,请参阅 Wiki 页面。manual- 单击工具栏以应用更改。auto- 编译后自动应用更改。never- 从不应用更改。 "java.debug.settings.hotCodeReplace":"auto", // 为主要入口点上的运行和调试按钮启用代码透镜提供程序,默认为 。true "java.debug.settings.enableRunDebugCodeLens":true, // 在启动 java 程序之前强制构建工作区,默认为 。true "java.debug.settings.forceBuildBeforeLaunch":true, // 生成失败时强制继续,默认为 false。 "java.debug.settings.onBuildFailureProceed":false, // 用于启动 Java 程序的指定控制台默认为 。如果要为特定调试会话自定义控制台,请在 launch.json 中修改“控制台”配置。internalConsole- VS 代码调试控制台(不支持输入流)。integratedTerminal- VS代码集成终端。externalTerminal- 可以在用户设置中配置的外部终端。 "java.debug.settings.console":"integratedTerminal", // 在异常中断时跳过指定的类。$JDK- 从默认系统引导类路径中跳过 JDK 类,例如 rt.jar、jrt-fs.jar。$Libraries- 从应用程序库中跳过类,例如 Maven、Gradle 依赖项。java.*- 跳过指定的类。支持通配符。java.lang.ClassLoader- 跳过类加载器。 "java.debug.settings.exceptionBreakpoint.skipClasses":[], // 单步执行时跳过指定的类。$JDK- 从默认系统引导类路径中跳过 JDK 类,例如 rt.jar、jrt-fs.jar。$Libraries- 从应用程序库中跳过类,例如 Maven、Gradle 依赖项。java.*- 跳过指定的类。支持通配符。java.lang.ClassLoader- 跳过类加载器。 "java.debug.settings.stepping.skipClasses":[], // 踩踏时跳过合成方法。 "java.debug.settings.stepping.skipSynthetics":false, // 单步执行时跳过静态初始值设定项方法。 "java.debug.settings.stepping.skipStaticInitializers":false, // 单步执行时跳过构造函数方法。 "java.debug.settings.stepping.skipConstructors":false, // 一个 JDWP 请求中可以请求的变量或字段的最大数量。值越高,在展开变量视图时请求调试对象的频率就越低。此外,较大的数字也可能导致 JDWP 请求超时。默认值为 100。 "java.debug.settings.jdwp.limitOfVariablesPerJdwpRequest":100, //调试器与目标 JVM 通信时 JDWP 请求的超时(毫秒)。默认值为 3000。 "java.debug.settings.jdwp.requestTimeout":3000, // 用于启动 Java 程序的默认 VM 参数。例如。使用“-Xmx1G -ea”将堆大小增加到 1GB 并启用断言。如果要为特定调试会话自定义 VM 参数,请在 launch.json 中修改“vmArgs”配置。 "java.debug.settings.vmArgs":"-Xmx1G -ea", // 控制通知是否可用于报告进度。如果为 true,请改用状态栏来报告进度。缺省值为 。false "java.silentNotification": false, // Spring Initializr Java Support // Default language. "spring.initializr.defaultLanguage":"Java", // Default Java version. "spring.initializr.defaultJavaVersion":"8", // Default value for Artifact Id. "spring.initializr.defaultArtifactId":"demo", // Default value for Group Id. "spring.initializr.defaultGroupId": "com.crudclass", // Spring Initializr Service URL(s). If more than one url is specified, it requires you to select one every time you create a project. "spring.initializr.serviceUrl": [ "https://start.spring.io" ], // Default value for Packaging. Supported values are "JAR" and "WAR". "spring.initializr.defaultPackaging": "JAR", // Default value for the method of openining the newly generated project. Supported values are "", "Open" and "Add to Workspace". "spring.initializr.defaultOpenProjectMethod": "Add to Workspace",
自定义注释
ctrl + shift + p输入snippets选择代码片段:配置用户首选项向下寻找 java 点击将打开java.json文件我的配置如下 ↓
json"Print to method":{ "prefix": "javadoc", "body": [ "/**", " * ", " * $0", " * ", " * @param ", " *", " * @return ", " *", " * @title: ", " * @author 你的姓名", " * @Date: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}", "**/" ], "description":"方法注释。" }, "Print to class":{ "prefix": "classdoc", "body": [ "/**", " * ", " * $0", " *", " * @title: ", " * @author 你的姓名", " * @Date: ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}", "**/" ], "description":"类注释。" }, "Print to .sout":{ "prefix": ".sout", "body": [ "$1", "System.out.println(\"=\" + $0);", "$2" ], "description":"System.out.println()" }当然你也可以编辑一些自己的注释
生成注释输入
prefix内的值回车将自动生成
