插件 1:CheckStyle—— 代码风格的 “强迫症患者”
(一)安装:和 Alibaba 插件一样简单
同样在 IDEA 的插件市场搜索 “CheckStyle”,安装后重启。它和 Alibaba 插件有点像,但更专注于代码格式,比如缩进、空格、大括号的位置。
(二)自定义规则:打造你的专属风格
你可以自己定义规则,比如要求方法名必须小写开头,变量名必须包含下划线。比如,你可以设置一个规则:“方法名必须以动词开头”,这样你的代码就会变得非常规范。
(三)和 Alibaba 插件的配合:双剑合璧
这两个插件可以一起使用,Alibaba 插件检查代码规范,CheckStyle 检查代码格式,让你的代码既规范又美观。就像你穿西装打领带,既正式又帅气。
插件 2:Alibaba Java Coding Guidelines—— 代码界的 “扫地僧”
(一)安装:点几下鼠标的事儿
打开 IDEA,点击 “File”→“Settings”→“Plugins”,搜索 “Alibaba Java Coding Guidelines”,点击安装,重启 IDEA。就这么简单,比找对象还容易。
(二)核心功能:专治各种不服
这个插件就像你妈,天天唠叨你 “坐直了!别驼背!” 它会检查你的代码命名是否规范、注释是否到位、空指针是否处理。比如,你写了一个变量叫 “a”,它会跳出来说:“这啥玩意儿?变量名要见名知意!” 然后给你建议改成 “userName”。
(三)三个等级:从 “小打小闹” 到 “生死攸关”
它把问题分成三个等级:Blocker(阻挡者)、Critical(严重问题)、Major(主要的)。Blocker 就像你开车没系安全带,必须立刻解决;Critical 就像你超速了,虽然危险但还有补救的机会;Major 就像你车胎有点漏气,暂时不影响但得尽快处理。
(四)自动修复:懒人福音
大部分问题它都能自动修复,你只需要点击一下,代码就变得整整齐齐。比如,你写了一个多余的分号,它会自动删掉,比你女朋友收拾房间还利索。
插件 3:PMD—— 代码安全的 “防火墙”
安装:搜索 “PMD”,安装即可
PMD 主要检查代码中的安全隐患,比如 SQL 注入、XSS 攻击、空指针异常等。它就像你的保镖,时刻保护你的代码安全。
(二)安全编码检测:防患于未然
它会检测你代码中的不安全写法,比如使用拼接 SQL 语句,而不是预编译语句。它会告诉你:“这样写容易被 SQL 注入攻击,赶紧改!” 然后给你建议改成预编译语句。
(三)自定义规则:满足你的特殊需求
你可以自己定义规则,比如禁止使用某些危险的 API,或者要求必须使用特定的安全库。比如,你可以设置一个规则:“禁止使用 System.out.println (),必须使用日志框架。”
插件 4:FindBugs——Bug 的 “天敌”
(一)安装:搜索 “FindBugs”,安装即可
FindBugs 是静态代码分析工具,它能发现代码中的潜在错误,比如空指针、资源未关闭、多线程问题等。它就像你的私人医生,给你的代码做全面体检。
(二)常见错误类型:让你大开眼界
它能检测出各种奇怪的错误,比如你把 “==” 写成 “equals”,或者忘记关闭数据库连接。比如,你写了一个方法:
public void test() {
String str = null;
if (str.equals(“test”)) {
// 这里会有空指针异常
}
}
FindBugs 会立刻告诉你:“这里可能有空指针异常,赶紧处理!”
(三)SpotBugs:FindBugs 的升级版
SpotBugs 是 FindBugs 的继任者,功能更强大,支持更多的错误类型。你可以在插件市场搜索 “SpotBugs” 来安装它,享受更全面的检测。
插件 5:SonarLint—— 代码质量的 “指挥官”
(一)安装:搜索 “SonarLint”,安装即可
SonarLint 是一个全面的代码质量分析工具,它不仅能检测错误,还能分析代码的复杂度、耦合度、重复代码等。它就像你的教练,指导你如何写出高质量的代码。
(二)配置:与 SonarQube 平台集成
你可以将 SonarLint 与 SonarQube 平台集成,这样你就可以在本地检查代码,同时将结果同步到平台上,方便团队协作和管理。比如,你可以设置一个质量门,要求代码的覆盖率必须达到 80% 以上才能提交。
(三)新规则:2025 年的新武器
SonarLint 在 2025 年有了新规则,特别是对 Java 23 的支持,能检测出更多新特性中的潜在问题。比如,对 Java 23 的 Record 类和模式匹配的检测,让你的代码更加健壮。
插件6: javaformat—— 代码格式
<!-- 代码格式插件,默认使用spring 规则 -->
<plugin>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-maven-plugin</artifactId>
<version>0.0.46</version>
</plugin>