ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

IDEA新旧版本配置通用指南:从JVM参数到Maven迁移

IDEA新旧版本配置通用指南:从JVM参数到Maven迁移 简介适用于IntelliJ IDEA 2020.1.4及2022.2版本的常用配置指南面向需要优化开发环境的Java开发者重点解决IDE初始化设置、插件选型、热部署与快捷键习惯等问题帮助减少日常编码中的重复操作。资源包内含1个docx文档大小约1.02MB不但介绍了下载安装说明还推荐了界面皮肤、Git工具集成、Maven依赖树、代码结构简化、彩虹括号高亮、接口快速定位等十余款实用插件同时覆盖编码统一、字体调整、自动导包、自动编译、换行符、显示行号、关闭自动更新、显示内存占用等基础设置并详细说明了热部署开启方法、自定义缩写配置、模拟Eclipse的Ctrl操作、列模式编辑、界面视觉优化、配置导入导出以及未使用字段告警处理。所有内容按主题分条列出层次清楚方便按需查阅。已有479人学习使用。掌握这些配置能显著提升编码效率统一团队开发环境尤其适合从Eclipse迁移或刚接触IDEA的开发者快速上手。1. 为什么 2020.1.4 与 2022.2 的 IDEA 配置能共用一套网上搜 idea 常用配置一半教你装插件另一半教你抄 vmoptions。但真到换版本的时候你会发现这也不适用、那也找不到。2020.1.4 和 2022.2 看起来差了两年其实配置骨架几乎没动一样的旧 UI、一样的 config 目录规则、一样的设置入口连补丁号都不进目录名。这套笔记要解决的是三件事知道配置从哪读、知道哪些参数值得调、知道升级后配置为什么失效。适用人群是那些手里有老项目、又不得不上新版 IDEA 的 Java 开发者以及刚入行想一次把环境配到位的同学。2. JVM 内存与启动参数把 IDE 从“能用”调到“不卡”IDEA 卡顿是永恒话题相关热搜里“idea卡顿cpu跑满”“idea显示内存使用情况”基本每个月都有人搜。大多数卡顿不是电脑不行而是 JVM 参数没给够、索引范围太大、插件塞太多。这一章先把最影响体感的三个方面讲透。2.1 配置入口与配置文件目录两个版本在哪里改IDEA 从 2020.1 开始config 和 system 目录统一挪到了系统用户目录下的 JetBrains 子目录命名规则是“IntelliJIdea 年份 主版本号”。这里有个小知识点目录名只取到 2020.1、2022.2 这一级不带 .4、.2 这种补丁号。所以 2020.1.4 的配置用在 2020.1 全系列上都没问题2022.2 的配置2022.2.x 也能通吃。这就是标题里“均适用”的真正含义。操作系统配置主目录举例VM 选项文件名Windows%APPDATA%\JetBrains\IntelliJIdea2022.2idea64.exe.vmoptionsmacOS~/Library/Application Support/JetBrains/IntelliJIdea2022.2idea.vmoptionsLinux~/.config/JetBrains/IntelliJIdea2022.2idea64.vmoptions改 VM 选项有两个入口。一是菜单栏 Help → Edit Custom VM Options两个版本都有点击后 IDEA 会直接在编辑器里打开当前生效的 vmoptions 文件二是手动到上面表格里的目录去找。我推荐用第一个入口因为 IDEA 会自动帮你定位到正确路径省得在两个版本的配置目录里迷路。改完必须完全重启 IDEA 才生效不是让你点一下关闭窗口再打开而是要退出进程重新启动。2.2 自定义 VM 选项堆内存、元空间与 GC 参数2020.1.4 时代默认分配的堆内存放到今天明显不够用一个微服务项目加一堆内部依赖跑起来动不动就撑爆。2022.2 的默认值稍好一点但面对大项目同样拘谨。我一般在 vmoptions 里做如下调整-Xms1024m -Xmx4096m -XX:MaxMetaspaceSize1024m -XX:ReservedCodeCacheSize512m -XX:UseG1GC -Dfile.encodingUTF-8参数含义按行解释-Xms是启动时分配的初始堆内存设成 1024m 让 IDEA 启动就拿到 1G避免频繁扩容-Xmx是堆内存上限本机 16G 内存时给 4G 比较稳妥8G 内存的老机器建议压到 2G 或 3G否则 IDE 不卡了浏览器和数据库开始卡-XX:MaxMetaspaceSize限制元空间防止加载大量插件后元空间无上限增长-XX:ReservedCodeCacheSize是 JIT 编译缓存的保留空间512m 对 IDEA 这种重度 IDE 很合适-XX:UseG1GC明确指定 G1 垃圾回收器2022.2 自带的 JBR 17 默认就是 G1写上去主要是为了在 2020.1.4 上保持同样的行为。一个常见的翻车点是从老博客抄参数时把-XX:MaxPermSize也带进来。这个参数在 JDK 8 里就被移除了IDEA 2022.2 内置的是 JBR 17启动时会直接报Unrecognized VM option然后闪退。看到这个报错把那行删掉就好。2.3 显示内存指示器与关闭无用插件卡顿 CPU 跑满的两条自救路很多人不知道 IDEA 右下角可以实时显示堆内存占用。打开方式在 Settings → Appearance Behavior → Appearance 页面勾选 Show memory indicator两个版本都有这个开关。开启后右下角会显示类似1426M / 4096M的指示器点击它可以手动触发一次 GC。这个功能对排查“是不是内存不够导致卡顿”特别直观内存占用一直顶着上限就该考虑加-Xmx了。CPU 跑满的另一个常见原因是装了一堆用不上的插件。2020.1.4 和 2022.2 的插件管理页面都在 Settings → Plugins建议统一做一次减负勾选那些确定不用的插件选择 Disable而不是卸载。比如部分公司内部插件和某些代码生成插件平时不干活但后台扫描很占资源。还有一个容易忽略的开关是 Power Save Mode在 Search Everywhere双击 Shift里输入“Power Save Mode”就能找到。打开后 IDEA 会暂停后台编译、代码检查和索引CPU 占用立刻降下来代价是语法高亮和错误提示变迟钝适合开会、查文档时临时用。3. Maven、JDK 与编码三个必配的全局项这一章对应的热搜是“idea配置maven”“idea运行javaweb项目配置”“idea配置svn”。这三个配置属于那种“配一次管三年”的项目而且两个版本的界面路径几乎完全一致照着做就行。3.1 Maven 配置本地仓库、镜像与自动导入Maven 配置的入口在 Settings → Build, Execution, Deployment → Build Tools → Maven。这里需要确认三件事Maven home path 用的是 Bundled 还是本地安装的 MavenUser settings file 是否指向了自己的 settings.xmlLocal repository 是否指向了自定义的本地仓库路径。2020.1.4 和 2022.2 的这三个下拉框位置一模一样唯一的区别是 2022.2 对 Bundled Maven 的版本号显示不同不影响操作。国内环境下Maven 中央仓库直连速度不稳定常见的做法是在 settings.xml 里配一个镜像。我在本地仓库的~/.m2/settings.xml里放的是阿里云公共镜像mirror idaliyunmaven/id mirrorOfcentral/mirrorOf nameAliyun Maven Central/name urlhttps://maven.aliyun.com/repository/public/url /mirror这里有个细节mirrorOf我写的是central只劫持中央仓库。如果你写成*会把公司私服也被镜像劫持掉导致私服里独有的构件拉不下来这个坑非常隐蔽。配好之后回到 IDEA 的 Maven 设置页把 User settings file 指到这个文件然后勾选 Import Maven projects automatically。两个版本都有这个勾选框2022.2 默认可能已经勾上2020.1.4 通常需要手动勾。勾选后pom.xml 一改动IDEA 会自动刷新依赖不用每次手动点右侧 Maven 面板的刷新按钮。3.2 JDK 与 Web 运行配置多版本 JDK 和 Tomcat 的关系项目 JDK 配置在 File → Project Structure → Project 页面Project SDK 下拉框里选 JDK 版本。2020.1.4 和 2022.2 的操作路径一致但很多人在这一步翻车选了 SDK 之后模块的 Language level 还是旧版本编译老报错。解决方案是在同一个页面里把 Project 的 Language level 同步调高再检查 Modules 每个模块的 Language level。做 JavaWeb 项目时还要确认 Run → Edit Configurations 里的 Tomcat Server 配置。两个版本的配置项几乎没变需要检查的是 Deployment 标签页里 Artifact 是否正确添加以及 Server 标签页的 HTTP port 有没有被占用。IDEA 2022.2 在 Tomcat 集成上比 2020.1.4 多了一些提示但核心配置不涉及老项目的运行配置可以直接平移。有一点值得留意如果项目同时要跑 JDK 8 和 JDK 17 两个环境Project SDK 可以来回切换但 Tomcat 版本要跟 JDK 匹配Tomcat 9 以下配 JDK 17 会有兼容问题。3.3 文件编码与换行符中文乱码的根源统一成 UTF-8项目里中文变问号、properties 文件乱码、控制台日志乱码十有八九是编码设置不统一。IDEA 的编码设置在 Settings → Editor → File Encodings两个版本都在同一位置。Global Encoding、Project Encoding、Default encoding for properties files 这三项全部选 UTF-8。Properties 文件要注意IDEA 默认会做 native-to-ascii 转换如果不勾选 Transparent native-to-ascii conversion写中文会被转成\uXXXX重启后看着像乱码实际是正常表现。换行符在同一个页面底部Line separator 建议选 Unix and macOS (\n)。这个设置关系到代码在 Git 提交时的差异Windows 下默认 CRLF混用后 diff 会显示整文件被改。两个版本这里有一点点差异2022.2 里如果启用了新 UI部分选项位置会变但我建议直接用旧 UI后续配置路径全按旧 UI 来。最后补一条控制台编码的独立设置Settings → Editor → General → Console 里把 Default Encoding 也改成 UTF-8。改完这些重启 IDEA清掉一次缓存File → Invalidate Caches乱码基本能断根。4. 编辑器习惯与常用插件把 IDEA 调成自己的形状配置走到这一步项目能跑、文件不乱码接下来才是真正的“常用配置”——把编辑器行为调成自己习惯的样子。这一章会涉及自动导包、快捷键方案、插件选择两个版本在行为上有细微差别我会标出来。4.1 自动导包、编译与保存时动作自动导包设置在 Settings → Editor → General → Auto Import。两个核心开关Add unambiguous imports on the fly 和 Optimize imports on the fly。前者是在你输入类名时如果只有一个匹配项自动补上 import后者是在保存或提交时自动删掉未使用的 import。我建议两个都勾上配合格式化效果很好。区别在于2020.1.4 勾上之后反应略慢需要给 IDEA 一点索引时间2022.2 的索引机制优化过基本无感。保存时自动格式化的能力两个版本差异比较大。2022.2 在 Settings → Tools → Actions on Save 里直接提供了 Reformat code、Optimize imports 等开关勾选后每次保存自动整理代码。2020.1.4 没有这个页面常见做法是装 Save Actions 插件来补。如果两个版本都想用一套习惯最省事的办法是2022.2 用自带功能2020.1.4 装 Save Actions然后按同样的选项去勾。插件版 Save Actions 还多了 Remove trailing spaces、Add missing Override 等选项效果比内置版更细缺点是重启后偶尔不生效触发一下保存动作就恢复了。4.2 Keymap 快捷键方案与导出Keymap 配置在 Settings → Keymap。Eclipse 转过来的开发者直接把方案从 IntelliJ IDEA Classic 切换成 EclipseVS Code 转过来的2022.2 里有 VS Code 映射方案2020.1.4 没有需要到插件市场装 Eclipse Keymap 或自定义。我个人的习惯是坚持 IDEA 默认方案因为默认方案在 JetBrains 全家桶里通用换 PyCharm、WebStorm 都不用重新适应。真正值得做的是把 Keymap 导出留着换机器用。操作路径是 File → Manage IDE Settings → Export Settings导出时勾选 Keymap 这一项。另一个更直观的小技巧在 Keymap 页面右键你自定义的快捷键方案选择 Copy然后把它重命名成自己的名字。这样就算版本升级导致默认方案被重置你自定义的那份方案仍然躺在 keymaps 目录里可以从 config 目录手动捞回来。4.3 稳定跨版本的插件与内置工具插件选择上跨两个版本都稳定的有几个Lombok 插件Java 项目几乎必备Translation 翻译插件看源码注释神器Save Actions上一节已经提过。装插件时注意版本兼容性2020.1.4 的插件市场如果安装了太新的插件版本IDEA 会提示插件不兼容这时要到插件详情页的 Versions 标签里选一个旧版本安装千万不要硬装。内置工具值得单独说。生成类图是 IDEA 自带能力选中类名后按Ctrl Alt UmacOS 上是Cmd Option U就能弹出 UML 类图2020.1.4 和 2022.2 的入口完全一致不需要额外装 PlantUML 插件。数据库工具也内置右侧 Database 面板连接 MySQL 后右键数据库表就能导出生成脚本这在两个版本里路径一致。SVN 集成同理Settings → Version Control 选 Subversion 即可公司项目还在用 SVN 的话照着配就行。5. 避坑升级版本后配置失效、卡顿 CPU 爆满、自动关闭的排查记录这一章写升级和日常使用遇到最多的 5 个坑全部按“现象 → 原因 → 解决”来记。没有玄学都是能复现、能解决的。5.1 升级到 2022.2 后快捷键和主题“丢了”现象从 2020.1.4 升级到 2022.2启动后界面是默认主题快捷键也恢复到默认自己配的东西全没了。原因两个版本的 config 目录名不同IDEA 首次启动时如果跳过了迁移对话框就不会自动读取旧版本的 keymaps、options 目录。它不是丢了是根本没去读。解决菜单 File → Manage IDE Settings → Import Settings选择旧版本配置目录下导出的 settings.jar如果当时没导出手动进旧版本的 config 目录把keymaps和options两个子目录复制到新版本的对应目录里重启后生效。5.2 打开大项目 CPU 跑满、索引卡死现象新拉下来的项目第一次打开CPU 瞬间跑满IDEA 下方进度条一直转持续十几分钟。原因IDEA 首次打开项目要建立索引target、node_modules、build 这些目录如果没被排除会被整个扫一遍索引量直接爆炸。解决在项目树里右键这些目录Mark Directory as → Excluded。这一步要把target、build、node_modules全排掉老项目还要把.idea目录以外的临时目录也检查一遍。如果已经索引完了右侧的 Maven 面板里点一次 Reload All Projects会按新的排除规则重新建索引速度明显提升。5.3 控制台中文乱码、properties 显示问号现象System.out 输出的中文变成??或者 properties 保存后中文变\uXXXX。原因代码文件是 UTF-8但 IDEA 的编译选项和运行控制台用的是系统默认编码Windows 下可能是 GBK两边不一致。properties 是有专门的转义机制中文被存储成 ASCII 转义序列。解决settings.xml 里给编译插件的 encoding 显式指定 UTF-8IDEA 的 File Encodings 全部改成 UTF-8同时勾选 Transparent native-to-ascii conversion。改完需要重启因为控制台的编码读取发生在启动阶段。如果 Tomcat 跑起来乱码还要在 Tomcat 的 Run Configuration 里 VM options 加上-Dfile.encodingUTF-8。5.4 设置中文后界面空白、插件不生效现象装了中文语言包重启后菜单栏空白或者部分插件按钮不见了。原因中文语言包版本与 IDEA 版本不匹配。2020.1.4 太老插件市场默认推送的 Language Pack 版本是给新版用的装上后 UI 字符串找不到对应 key直接空白。解决Settings → Plugins找到 Chinese (Simplified) Language Pack进入插件详情页的 Versions 列表选择一个和当前 IDEA 版本匹配的旧版安装。2022.2 基本不会有这个问题官方语言包的兼容区间覆盖得很好。同时不要装多个汉化包IDEA 汉化类插件有冲突装两个轻则菜单变英文重则启动报错。5.5 IDEA 用着自动关闭重启还是闪退现象IDEA 运行一段时间后直接消失重启到一半又闪退甚至打不开。原因最常见的是 vmoptions 里写了一个不认识的 JVM 参数比如从旧教程抄来的-XX:MaxPermSize或者-Xmx给得太大机器内存不够分配。解决先做减法把 vmoptions 里所有自己加的参数全部注释掉能启动就一行一行加回来排查。-Xmx超过物理内存的一半时要谨慎本机 8G 内存却给 6G 堆加上系统和其他软件很容易 OOM被操作系统直接杀进程。实在找不到原因用 File → Manage IDE Settings → Restore Default Settings 重置然后再导入备份的配置。这条是后悔药里最重要的环节所以配置迁移不能偷懒。6. 把整套配置做成后悔药settings.jar 迁移验证6.1 导出与导入的完整路径两个版本的导出入口完全一致File → Manage IDE Settings → Export Settings。勾选项目中所有配置项导出成一个 settings.jar 文件。这个 jar 包含了你的 keymaps、代码风格、文件模板、live templates但不包含插件列表和 VM 选项参数所以备份时要把 vmoptions 文件单独复制一份。我更习惯用命令行直接备份关键目录在 Linux 或 macOS 下这样操作backup_dir$HOME/idea-backup/$(date %Y%m%d) mkdir -p $backup_dir cp -r $HOME/.config/JetBrains/IntelliJIdea2022.2/options $backup_dir/ cp -r $HOME/.config/JetBrains/IntelliJIdea2022.2/keymaps $backup_dir/ cp $HOME/.config/JetBrains/IntelliJIdea2022.2/idea64.vmoptions $backup_dir/第一条命令是生成带日期的备份目录避免覆盖旧备份后面三条是复制 options、keymaps 目录和 vmoptions 文件。Windows 用户把路径换成%APPDATA%\JetBrains\IntelliJIdea2022.2即可。这个备份比 settings.jar 更彻底因为它把插件配置、项目级选项也一并带上了。恢复时反向复制回去重启就生效。6.2 验证迁移结果的三个检查点导入配置后不建议直接开干先检查三个点一是 Keymap 方案有没有变按一下Ctrl Shift A看搜索框是否弹出如果弹的是别的快捷键说明方案没导进去二是打开一个项目格式化一段代码看缩进风格和之前是否一致三是打开 Maven 设置页确认本地仓库路径没有回到默认的~/.m2/repository。三处都没问题迁移才算完成。6.3 我现在的版本升级习惯我现在每次大版本升级前固定导出一份 settings.jar再复制一份 config 关键目录到移动硬盘。升级后先导入配置再改 vmoptions最后开项目验证整个过程十分钟以内。小版本更新比如 2022.2.1 到 2022.2.2我基本不备份因为配置目录名不变IDEA 会直接复用。这套习惯帮我躲过好几次配置丢失的尴尬有一次 2020.1.4 崩到起不来全靠备份十分钟恢复了整套环境。希望帮到你。本文还有配套的精品资源点击获取
返回列表