IDEA 常用插件以及开发工具
IDEA 本身已经足够强大,但装对几个插件,能把代码质量检查、依赖排查、格式规范这些日常琐事省下不少时间。这篇整理一下我在 Java 开发中常用的插件和工具,按用途分类,方便按需取用。
静态代码质量管理工具部署平台
Code Quality and Code Security | SonarQube
SonarQube 严格来说不是 IDEA 插件,而是一个独立部署的代码质量管理平台。它通过静态分析扫描代码中的 bug、漏洞和坏味道(code smell),并给出量化的质量报告。一般的用法是在团队内部署一套服务,配合 CI 流程在每次提交或合并时自动扫描,把质量问题拦在合入之前。IDEA 侧也有对应的插件可以连到服务端,在本地就能看到扫描结果。
代码质量检查插件 FindBugs
可以直接以插件安装在 IDEA IDE 中。
FindBugs™ - Find Bugs in Java Programs (sourceforge.net)
FindBugs 的原理是分析编译后的字节码,匹配已知的缺陷模式,比如空指针解引用、资源未关闭、equals 与 hashCode 不配对等。它和 SonarQube 的定位互补:SonarQube 偏向团队级的持续质量管理,FindBugs 更适合在本地写完代码后随手扫一遍。
翻译插件(英语不好者必备)
Translation 可以在代码开发视图中直接翻译。
选中变量名、注释或者文档字符串,快捷键一按就能看到译文,不用切出去开浏览器查词典。读英文源码注释、给变量起名的时候尤其顺手。
代码编码格式约束插件
CheckStyle-IDEA 通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范。
它和 FindBugs 的侧重点不同:FindBugs 找的是"可能出 bug 的代码",CheckStyle 管的是"写得不规范的代码"。团队可以共用一份规则文件(比如基于阿里或 Google 的 Java 风格规范改出来的),保证所有人产出的代码风格一致,review 时就不用再为格式问题来回拉扯。
Java Maven 包冲突检测工具
Maven Helper 可以检测整个项目 pom.xml 中的依赖冲突。
Maven 的依赖是传递性的,项目一大,同一个包被不同依赖间接引入不同版本几乎是必然的。默认的 mvn dependency:tree 输出很难读,Maven Helper 直接在 IDEA 里打开 pom.xml 就多出一个依赖分析视图,冲突的依赖会标红,右键就能 exclude 掉不想要的版本,排查 NoSuchMethodError、ClassNotFoundException 这类由版本冲突引起的问题时非常好用。
代码缩略视图插件
CodeGlance 类似于 VSCode 软件中的缩略视图。
在编辑器右侧显示整个文件的缩略图,长文件里跳转、定位大致位置时比拖滚动条直观。
项目热部署插件(收费)
JRebel 减少修改代码与 mapper.xml 后重启,提高工作效率。
传统开发流程里,改一行 Java 代码就要重启应用,项目大了一次重启动辄几十秒甚至几分钟。JRebel 的思路是在 JVM 层面做类的热替换,修改代码后无需重启就能生效,连 MyBatis 的 mapper.xml 变更也能覆盖到,比 Spring Boot 自带的 devtools 重启方案覆盖面更广。缺点是商业收费,个人使用成本不低。
json 字符串对象转 java 文件插件
GsonFormat
对接第三方接口时,拿到一段 JSON 响应,手写对应的 Java Bean 又慢又容易抄错字段。GsonFormat 可以把 JSON 字符串直接粘进去,自动生成字段和类型都对应好的实体类,嵌套结构也能处理。
开发效率工具
Lombok 是一个在 Java 开发过程中用注解的方式,简化了 JavaBean 的编写,避免了冗余和样板式代码而出现的插件,让编写的类更加简洁。
它的原理是在编译期通过注解处理器生成代码:@Getter/@Setter 生成读写方法,@Builder 生成建造者,@Slf4j 生成日志对象声明。源码里看不到这些方法,但编译出的 class 文件里都有。要注意 Lombok 需要两头配合——项目里引入依赖,IDEA 里装插件,少一头都会满屏报红。
快捷键提示插件(算是必装)
Key Promoter X 是用于基于 IntelliJ 产品(如 IDEA,Android Studio 或 CLion)的插件,它有助于在工作时从鼠标操作中学习基本的键盘快捷键。当您在 IDE 内部的按钮上使用鼠标时,Key Promoter X 会显示您应该使用的键盘快捷键。这提供了一种简单的方法来学习如何用键盘按键代替繁琐的鼠标工作,并有助于过渡到更快的无鼠标开发。当前,它支持工具栏按钮,菜单按钮,工具窗口及其中的操作。
插件地址:https://plugins.jetbrains.com/plugin/9792-key-promoter-x
这类"教学型"插件的好处是被动学习:不需要专门背快捷键表,哪个操作用鼠标点得多,它就反复提醒哪个,自然就记住了最常用的那批。
踩坑与注意
1)插件不是越多越好。每个插件都会占内存、拖慢索引和启动速度,IDEA 卡顿时先检查是不是插件装太多了,不常用的及时禁用。
2)Lombok 相关的编译报错,优先确认依赖和插件是否都装了,以及注解处理(Annotation Processing)是否已启用。
3)质量检查类插件(FindBugs、CheckStyle)在大项目上全量扫描会比较耗时,建议只对改动的模块或文件跑增量检查。
4)依赖冲突用 Maven Helper 排查后,exclude 要谨慎,确认被排除的版本确实不被其他模块需要,否则可能把问题从编译期推迟到运行期。
小结
这十个工具大致覆盖了几类日常需求:质量与规范(SonarQube、FindBugs、CheckStyle)、依赖管理(Maven Helper)、编码效率(Lombok、GsonFormat、Translation、CodeGlance)、开发体验(JRebel、Key Promoter X)。不必一次装全,按自己项目的痛点挑着装,用顺手了再补,才是插件的正确打开方式。
评论 / COMMENTS