Spotless 是什么
Spotless 为 Java 等语言提供格式化与清理能力,通过 Gradle 或 Maven 插件接入:常用步骤包括按官方格式化器统一格式、移除未使用的导入、去掉行尾空白。它和检查类工具的分工很清晰——格式交给它,规范与缺陷交给别的工具。
基本信息
| 定位 | 格式化与清理插件 |
|---|---|
| 常用步骤 | 调用格式化器、移除未使用导入、去掉行尾空白 |
| 集成方式 | Gradle 或 Maven 插件 |
| 命令 | apply 就地修复,check 用于门禁 |
典型使用场景
- 新项目:接入之后一次性统一全库格式
- 老项目:格式化单独成一次提交,再接入门禁
- 多模块仓库:多个模块共用同一份格式配置
- 导入清理:顺手删除未使用的导入,减少检查告警
- 许可证头:统一文件头模板并保持一致
接入建议
- 先跑一次 apply,把格式差异清干净
- 把 check 接进流水线作为门禁
- 在团队文档里写清本地修复命令
- 许可证头模板定稿之后尽量不要反复调整
Gradle 片段
Gradle 片段
spotless {
java {
googleJavaFormat()
removeUnusedImports()
trimTrailingWhitespace()
}
}
// ./gradlew spotlessApply步骤与作用
| 步骤 | 作用 |
|---|---|
| 调用格式化器 | 统一换行、缩进与括号位置 |
| 移除未使用导入 | 减少静态检查告警与差异噪声 |
| 去掉行尾空白 | 避免无意义的差异记录 |
| 许可证头检查 | 保证各文件的文件头一致 |
在评审中怎么用
- 纯格式化提交整份跳过,只评审逻辑改动
- 确认本地修复命令已经写进开发文档
- 许可证头或格式化器版本的改动单独成批
- 流水线失败时提示修复命令,而不是让人手工改
本地用 apply 一键修复,流水线用 check 做门禁:两者配合起来,开发者才不必手工调格式。
把格式与逻辑分开提交,是让评审变快的最简单一步:注意力不必消耗在空白与换行上。
在评审中的用法:格式化提交与逻辑提交分开,评审者可以整份跳过前者,直接看后者。
许可证头模板反复调整:全库文件头抖动,差异记录被大量无关改动淹没。