首页/开发/代码质量与评审速查/Spotless:Java 统一格式化
规范与静态检查65 条

Spotless:Java 统一格式化

Spotless 为 Java 等语言提供格式化与清理(Gradle/Maven 插件):常用 googleJavaFormat、removeUnusedImports、trimTrailingWhitespace 等步骤。

Spotless 是什么

Spotless 为 Java 等语言提供格式化与清理能力,通过 Gradle 或 Maven 插件接入:常用步骤包括按官方格式化器统一格式、移除未使用的导入、去掉行尾空白。它和检查类工具的分工很清晰——格式交给它,规范与缺陷交给别的工具。

基本信息

定位格式化与清理插件
常用步骤调用格式化器、移除未使用导入、去掉行尾空白
集成方式Gradle 或 Maven 插件
命令apply 就地修复,check 用于门禁

典型使用场景

  • 新项目:接入之后一次性统一全库格式
  • 老项目:格式化单独成一次提交,再接入门禁
  • 多模块仓库:多个模块共用同一份格式配置
  • 导入清理:顺手删除未使用的导入,减少检查告警
  • 许可证头:统一文件头模板并保持一致

接入建议

  • 先跑一次 apply,把格式差异清干净
  • 把 check 接进流水线作为门禁
  • 在团队文档里写清本地修复命令
  • 许可证头模板定稿之后尽量不要反复调整

Gradle 片段

Gradle 片段
spotless {
    java {
        googleJavaFormat()
        removeUnusedImports()
        trimTrailingWhitespace()
    }
}
// ./gradlew spotlessApply

步骤与作用

步骤作用
调用格式化器统一换行、缩进与括号位置
移除未使用导入减少静态检查告警与差异噪声
去掉行尾空白避免无意义的差异记录
许可证头检查保证各文件的文件头一致

在评审中怎么用

  • 纯格式化提交整份跳过,只评审逻辑改动
  • 确认本地修复命令已经写进开发文档
  • 许可证头或格式化器版本的改动单独成批
  • 流水线失败时提示修复命令,而不是让人手工改
本地用 apply 一键修复,流水线用 check 做门禁:两者配合起来,开发者才不必手工调格式。
把格式与逻辑分开提交,是让评审变快的最简单一步:注意力不必消耗在空白与换行上。
在评审中的用法:格式化提交与逻辑提交分开,评审者可以整份跳过前者,直接看后者。
许可证头模板反复调整:全库文件头抖动,差异记录被大量无关改动淹没。

易错点

  • 流水线只做检查不提供本地修复指引:开发者只能手工调格式
  • 许可证头模板反复调整:全库文件头抖动,差异巨大
  • 格式化与业务改动混在一次提交:评审无法分辨真实变化
  • 插件版本不锁:格式化器升级之后全库重排

数据来源与参考

  • Spotless 官方文档(github.com/diffplug/spotless)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌