去年有段时间我特别上头,把插件市场里评分靠前的插件挨个试了一遍,最后数了数,装了八十多个。结果很真实:IDEA 启动要两分钟,写代码时输入法都跟着卡,经常刚敲完一行字就在那转圈。折腾了半个月,我把插件全部禁用,再一批一批装回去,最后沉淀下来的,就是标题里这 30 款 IDEA 插件。说它们是宝贝,是因为这些插件不是装完截图发朋友圈的那种,而是真的会在干活的时候反复用到的工具。这篇东西不是简单的“插件搬运清单”,我不想让你重新走我那条把 IDE 折腾成“老年机”的弯路,所以每个插件的适用场景、配置细节、踩坑点,我都会讲清楚。
1. 筛选逻辑:为什么这 30 款能留下来
1.1 我的三重复筛标准
很多推荐插件文章的问题是:只管推荐,不管删。但如果真的把所有“好插件”都装进去,你会发现 IDE 越来越慢,最后反而什么都不好用。我筛选时只用三个标准。
第一个是性能。插件装上之后,如果日常输入代码时会感觉到明显的延迟、卡顿、内存飙升,不管它功能多强,直接删。功能再强,影响手感的工具都算不上宝贝。
第二个是使用频率。插件最好分成“常驻”和“按需”两类。一周能用个两三回的,才有资格常驻;一个月才用一次的,不如用到时再在插件市场里临时启用。
第三个是替代关系。很多插件功能重叠,比如我装了好几个 JSON 格式化工具,最后发现 IDEA 内置的临时文件处理已经能覆盖九成需求,其他的全部淘汰。一组场景只留一个最顺手的,数量自然就下来了。
1.2 为什么有些名气很大的插件你没看到
你可能会发现,这份清单里少了一些“人手一个”的插件,这是有意为之。
比如某些主题美化插件,人气极高,但我个人试下来,要么是改变字体渲染导致开发时眼睛容易疲劳,要么是更新节奏跟不上 IDEA 版本,每次升级 IDE 都要去适配一次主题。对我这种生产力优先的人来说,主题插件带来的愉悦感抵不上它带来的折腾。
还有一些代码生成类插件,名气也不小,但实际用起来生成的模板往往需要大改,调试时间比我手写还长。这类插件我不拒绝,但也不会把它放进“常驻”,而是放进后面第 5 章的“按需启用”那一栏。真正的宝贝插件,应该是装上之后你几乎感觉不到它的存在,但它每天都在帮你省时间。
2. 第一梯队:每天都在用的代码增强类插件
2.1 Lombok:少写的是重复代码,不是逻辑
Lombok 其实已经是老熟人,但我要讲的是配置细节,因为太多人装完之后发现“没生效”。
插件装上之后,要去Build, Execution, Deployment -> Compiler -> Annotation Processors里把Enable annotation processing勾上,不然@Data、@Builder这些注解不会自动生成 Getter/Setter。这一步是环境问题,不是插件问题,经常被忽略。
实际项目中我比较推荐的是@Builder+@Data的组合,再配合@Accessors(chain = true),对象赋初值的时候可以写成这样:
User user = User.builder() .name("张三") .age(18) .build();写测试数据的时候尤其舒服。要注意的是,团队里所有人必须统一装 Lombok 插件,并且统一 JDK 版本,否则容易出现“我本地能编译,别人那边报符号找不到”的问题。这个坑我在带新同事时踩过几次,处理方式是在项目 README 里专门加了一行“IDEA 必备插件列表”,不然新人进来第一件事就是满脸问号。
2.2 MyBatisX:Mapper 和 XML 之间的“任意门”
做 Java 后端如果用了 MyBatis,这款插件基本是必需品。它最核心的能力就是 Java Mapper 接口和 XML 映射文件之间的互相跳转。
平时我们写持久层,最痛苦的就是在几十个 XML 文件里翻来翻去找某一个 SQL。装了这个插件之后,Mapper 接口里的小图标一点,直接跳到对应 XML 的实现位置;反过来在 XML 里也能跳回接口声明。
它还支持生成基础的 CRUD Mapper方法。选中表结构后,可以直接生成:
- Entity 实体类
- Mapper 接口
- Mapper XML 文件,包含基础的 selectByPrimaryKey、insert、updateByPrimaryKey、deleteByPrimaryKey
注意,它生成的 SQL 用的是单表基础操作,遇到多表关联查询、复杂动态 SQL,还是得自己写。但能把那些“模板式”的代码一次性生成出来,已经能省下不少时间了。
2.3 Java 编码规约插件:把代码规范变成“实时评审”
现在的编辑器越来越智能,但代码规范这种东西,光靠编译器是管不住的。我仓库里有一款编码规约扫描插件,相当于把一个评审专家请进了 IDE——实时对正在编辑的代码做静态检查,命名风格、魔法值、空指针隐患、集合使用问题,它会直接给到提示,甚至给出修改建议。
初期对这种插件比较抗拒的人,大多是觉得“弹窗太多”。我的办法是:不用默认的全面警告级别,只保留“严重”级和“建议”级里和团队约定相关的几条,其他全部关闭。比如我团队里强制要求不允许使用魔法值,那这条就保持开启;有些规约是项目历史遗留没法一次改完的,可以先关掉,等重构的时候再开。
有这段经历之后我发现,插件本身不制造规范,它只是放大团队已有的约定。前提是你们得先立规矩,不然插件只会在 code review 的时候变成吵架工具。
2.4 Translation:查单词不用再切窗口
翻译类插件听起来没那么“硬核”,但实际使用频率极高。起变量名、给类写注释、看英文报错,这些场景每写几行代码就可能遇到一次。如果不装翻译插件,就得切到浏览器,查完再切回来,来回几次注意力就被切碎了。
IDEA 里比较成熟的翻译插件可以直接在代码上下文里选中一个英文单词,右键翻译成中文;也可以把鼠标悬浮在某个标识符上,直接看到注释含义。更关键的是写国际化资源文件的时候,它能快速补充中英文翻译,这块切外部工具的效率完全没法比。
稳定版里还有一个特别好用的场景:当你不知道一个方法名应该用find还是search、应该用remove还是delete时,翻译插件能帮你统一团队里的命名习惯,避免出现一个项目里两种语义混用的情况。
3. 调试与排错专场:会看 Bug 比会写代码更省时间
3.1 RESTful 接口调试工具:从浏览器回归 IDE
现在 IDEA 新版本其实已经内置了HTTP Client,可以直接在.http文件里写请求、跑接口、看响应。但如果你接手的是老项目,或更习惯图形化点击操作,那么一款 REST 接口搜索/调试插件就很有价值。
它能做两件事:第一,扫描项目里所有的@Controller、@RequestMapping、@GetMapping等注解,把接口路径汇总成一个侧边栏,直接点击就能预览请求信息;第二,配合内置的 HTTP 客户端,直接在 IDE 里完成 GET、POST、PUT 这类请求的调试。
我在实际项目里的用法是:打开 Controller 文件后,直接在方法上点一下运行按钮,就能请求对应接口,再也不用为了调两个试一试的请求专门打开浏览器工具、复制粘贴 URL。特别适合前后端联调,前端同事说“接口报错了”,你先自己在 IDE 里跑一遍,很多时候问题一眼就看出来了。
3.2 Grep Console:给日志安上“探照灯”
排错的时候,面对满屏的 System.out 和日志输出,要一眼找到 ERROR,还得靠给日志上色。
Grep Console 这样的日志高亮插件,能实现两个核心效果。第一个是日志级别的颜色区分:ERROR红色、WARN黄色、INFO绿色。这不是单纯好看,而是人眼对不同颜色的敏感度远高于文字,找问题的时候扫一眼就能锁定异常区域。
第二个是控制台内过滤。比如某个接口的日志特别多,你想只看包含“订单号”的行,直接在控制台里输入过滤关键词,就能把无关输出全部隐藏。搭配-XX:MaxDirectMemorySize之类的 JVM 参数问题排查,以及并行产生的多线程日志筛选,效率提升很大。
这里有个小技巧:日志插件别贪多。曾经我也装过两三个日志增强插件,最后它们互相覆盖颜色配置,反而让控制台变得乱七八糟。留一个顺手的就好。
3.3 Maven Helper:依赖冲突的可视化“照妖镜”
Maven 项目最闹心的问题之一就是依赖冲突:明明代码没问题,运行时就报NoSuchMethodError、ClassNotFoundException。Maven Helper 插件能帮你从“黑盒依赖”里找出谁和谁冲突了。
装完之后,pom.xml里会多出一个Dependency Analyzer标签页,打开后你可以看到整个依赖树。关键是冲突标记:同一个类在多个依赖里出现,它会把冲突条目列出来,并提示你当前生效的是哪一条版本。
排查思路一般是这样:
- 复制报错类名。
- 在
Dependency Analyzer里搜这个类名。 - 看它被哪些包引用了,再看版本树,找到真正生效的版本。
- 在
pom.xml里用<exclusions>排除掉不需要的传递依赖,或者主动引入正确版本覆盖。
这比在命令行里敲mvn dependency:tree再去人工比对要直观得多,尤其是依赖层级深到四五层的时候,图形化树形结构能省很多时间。
3.4 Java Stream Debugger:调试 lambda 不抓瞎
很多人在用 Java 8 的 Stream 流做复杂数据处理时,不喜欢调试。因为断点进到 lambda 里之后,跟踪每个中间步骤究竟产生了什么结果,实在太麻烦。相比之下,for 循环里打断点看变量,显然直观得多。
Java Stream Debugger 这个插件就是来解决这个痛点的。当你使用 Stream 时,Debug 界面里有一个专门的 Trace Current Stream Chain 标签,它会以图形化方式展示每个 Stream 操作之后的结果,比如filter之后还剩几条数据,map之后变成了什么类型。
这是我在处理一些“看着没逻辑错误,但结果就是不对”的数据变换时最常用的排查手段。比如有一次,一段.filter()条件写的顺序不对,导致最终结果少了数据,用这个插件一眼就能看到是哪一步开始不对劲。省下来的时间,足够你早点下班。
4. 效率拼图:小工具的大能量
4.1 GenerateAllSetter:对象字段的批量生成队伍
写测试用例或构造复杂对象时,最烦的不是写逻辑,而是给对象逐字段赋值:
User user = new User(); user.setName("张三"); user.setAge(18); user.setEmail("zhangsan@example.com"); // 还有十几个 setterGenerateAllSetter 的作用是:选中对象,按快捷键,一键生成所有 setter 调用。如果哪个字段是对象类型,还能继续深挖,生成嵌套对象的 setter。
另一个类似功能的 GenerateAllToString,能一键生成某个对象的 toString 模板,这在日志打印对象内容时非常好用。我发现很多人写完类之后不做 toString,排错时打印对象出来是一串com.xxx.User@1a2b3c,完全看不出值。装了这个插件后,生成一个格式清晰的 toString 只是按一下的事。
4.2 Rainbow Brackets:括号治好了我的“多括号恐惧症”
方法调用嵌套、lambda 套 lambda、SQL 拼条件,写代码最怕的就是括号多了,近视眼看花了也不知道这半边括号配的是哪个半边。
Rainbow Brackets 会给不同层级的括号配上不同颜色:最外层是红色,往里一层是黄色,再往里是绿色、紫色。视觉上立马能分清楚匹配关系。
它在处理 JSON 文件的时候也特别有用。之前整理一份四五层嵌套的配置 JSON,加上这个插件后,同层括号的颜色一一对应,想找漏配的半边括号就轻松了。颜色模式在代码复杂的时候简直像开了“外挂”,所以它排进我的常驻列表没商量。
4.3 .ignore + GitToolBox:版本控制里的隐形助手
.ignore插件解决的是.gitignore文件的编写问题。它提供了文件模板:当你新建一个.gitignore文件时,可以直接选择主流语言/IDE/框架的模板,把积木式配置一次性生成出来。同时它会让被忽略的文件在项目树里看起来明显更淡,肉眼确认哪些文件没有进版本控制。
GitToolBox 则在状态栏里直接显示当前分支、提交状态、提前或落后远端多少提交,不用去切 Git 面板才能看。对于在一个分支干得忘我、忘记同步的人来说,它就是一个持续存在的信息牌,提醒你“现在分支落后 main 两个提交了”。
这两个插件都有一个共同点:不是帮你“做事”,而是帮你“看见”,但恰恰是这一类插件,给人的稳定感最强。
4.4 String Manipulation:字符串转换工具箱
这个插件像一个字符串的瑞士军刀,支持各种常见转换:
- 驼峰命名转下划线命名,或反向转换
- 中划线命名转驼峰
- 首字母大写/小写
- 大小写互转
- 将选中的字符串转 JSON 转义格式
- 生成递增序号、打乱、反转行
我使用最频繁的场景是:从接口文档里复制一个新字段名user_avatar_url,需要转成 Java 变量风格userAvatarUrl,以前还要敲一遍或去找在线工具,现在选中文本直接右键转换,顺手得不行。
值得提醒的是,这类转换工具在不同语言之间是有差异的,比如前端的 CSS 命名是 kebab-case,Java 变量是 smallCamelCase,一定要时刻确认你选的是“转成什么”,别一键下去反而把大写全部丢失了。
5. 30 款插件完整清单与“按需启用”策略
下面是我这台环境里保留下来的 30 款插件清单,我已经按“常驻必装 / 按需启用 / 谨慎尝试”做了分组。指标是:是否影响性能、每周使用频率、是否有更好的内置替代方案。
| 分组 | 插件(通用名称) | 核心作用 | 我的使用频率 |
|---|---|---|---|
| 常驻必装 | Lombok | 注解生成代码 | 每天 |
| 常驻必装 | MyBatisX | Mapper 与 XML 跳转、CRUD 生成 | 每天 |
| 常驻必装 | Java 编码规约插件 | 静态代码规范扫描 | 每天 |
| 常驻必装 | Translation | 代码翻译、命名辅助 | 每天 |
| 常驻必装 | RESTful 接口调试工具 | 接口搜索与调试 | 每天 |
| 常驻必装 | Grep Console | 日志颜色与过滤 | 每天 |
| 常驻必装 | Maven Helper | 依赖冲突可视化分析 | 每周 2-3 次 |
| 常驻必装 | Java Stream Debugger | Stream 断点调试 | 每周 1-2 次 |
| 常驻必装 | Rainbow Brackets | 括号颜色匹配 | 每天 |
| 常驻必装 | GenerateAllSetter | 一键生成 setter 调用 | 每周 2-3 次 |
| 常驻必装 | GenerateAllToString | 一键生成 toString | 每周 2-3 次 |
| 常驻必装 | String Manipulation | 字符串格式转换 | 每周 3-4 次 |
| 常驻必装 | .ignore | 维护 gitignore 文件 | 每周 1 次 |
| 常驻必装 | GitToolBox | 状态栏 Git 信息提示 | 每天 |
| 按需启用 | CheckStyle-IDEA | 代码风格检查 | 每月 2-3 次 |
| 按需启用 | SonarLint | 运行时级问题扫描 | 每月 2-3 次 |
| 按需启用 | CodeGlance Pro | 代码缩略地图 | 每周 1-2 次 |
| 按需启用 | Rainbow CSV | CSV 文件按列高亮 | 每周 1 次 |
| 按需启用 | PlantUML Integration | 文本绘图 | 每月 1 次 |
| 按需启用 | SequenceDiagram | 方法调用时序图生成 | 每月 1-2 次 |
| 按需启用 | GsonFormatPlus | JSON 转 Java 类 | 每周 1-2 次 |
| 按需启用 | Docker | 容器连接与操作 | 每周 2-3 次 |
| 按需启用 | Kubernetes 插件 | 管理集群资源 | 每周 1 次 |
| 按需启用 | EditorConfig | 统一编辑器风格 | 每周 1 次 |
| 谨慎尝试 | Statistic | 代码量统计 | 每月 1 次 |
| 谨慎尝试 | Markdown Navigator | Markdown 编辑增强 | 每月 1 次 |
| 谨慎尝试 | Ideolog | 日志框架支持 | 每月 1 次 |
| 谨慎尝试 | Key Promoter X | 快捷键提示 | 每周 3-4 次(新手期) |
| 谨慎尝试 | 代码检查聚合插件 | 一键分析全项目问题 | 每月 1 次 |
| 谨慎尝试 | 模板代码生成器 | 按模板生成类文件 | 每月 1 次 |
表格里“按需启用”和“谨慎尝试”的区别,用一句话说就是:前者在我需要的时候关掉其他占资源的插件它也还是好用的,后者大部分时间只是“养在宫里”以防哪天用到,平时默认禁用。
用过Docker插件的都知道,如果本地没有 Docker 环境,启动时它会尝试连接主机,多多少少会让 IDE 感到“压力”。所以我的建议是:没有 Docker 开发环境就先禁用,别让它常驻后台做无效轮询。Kubernetes 插件同理,本地没有集群就只在要用的时候再启用。
6. 插件装多了性能下降时,我的处理路径
如果你已经装了远超 30 款的插件,出现启动慢、内存高、打字卡顿,不要急着重装 IDE,按下面的路径处理一次,通常能恢复不少。
6.1 先给插件“排雷”,区分 CPU 杀手和后台轮询
大部分插件默认会在启动时加载并扫描项目索引,这个动作很消耗 CPU 和内存。处理方式是打开插件列表(Settings -> Plugins),把所有插件按“最近使用时间”排序,把超过一个月没碰过的全部禁用。
尤其是那些提供“代码提示大礼包”的插件,它们会实时解析所有依赖库以便给出建议,当项目规模大的时候,这个解析过程的成本会被无限放大。禁用后,你会发现代码提示的响应速度能明显提升。
6.2 明确“按需启动”的思想
IDEA 支持在插件设置里临时禁用某个插件,但问题是取消禁用后 IDE 会要求重启。所以实际上,我更建议的用法是:把插件分为“平时禁用、每周固定花十分钟启用一次处理积压任务”的节奏。
比如代码统计插件,一个月才用一次,平时禁用;等月度统计的时候再启用,用完再禁用。这个过程熟练之后,一分钟就能完成两个插件的切换,你付出的代价远远低于让它们常驻拖慢系统。
6.3 考虑 IDE 的启动方式和 JVM 内存
启动慢,有时候不全是插件的锅。如果你的 IDEA 是从低配机械硬盘上启动的,插件加载必然慢。还有 JVM 启动参数里,IDEA 默认给 IDE 进程分配的内存不小,但如果你的电脑本身只有 8G 内存,还要同时跑 Docker、数据库客户端、浏览器,那就很吃紧了。
可以适当调低 IDE 内存(Help -> Change Memory Settings),或者关掉不需要的“分析”功能,再配合只保留 30 款,体感会有明显改善。
每次筛选插件,本质上都是在回答一个问题:你希望 IDE 替你完成什么?是减少重复劳动,还是帮你更快发现问题,或是帮你维持规范。按照这个思路去装插件,而不是照着别人晒出的“豪华全家桶”一股脑装下去,你最后留下的,才会是不多不少、每天都在用的那 30 款。我的经验是:与其羡慕别人的插件清单,不如先把自己已经装了的插件重新过一遍,把不用的停用掉,肚子里的货比数量重要多了。