mvn spotless:apply mvn spotless:check <googleJavaFormat version='1.17.0'/>
本地按 IDE 默认格式整理后提交,CI 跑 spotless:check 仍报 The following files had format violations,每次都要再改一轮才过。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,IDE 用的是内置格式化方案,Spotless 读的是仓库里那份 google-java-format 配置,缩进宽度和换行阈值两边不同,谁也没错,只是规则从来没对齐过。
围绕「格式化配置不一致」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。
别只看报错的最后一行,往上看几行,真正的起因通常在上面。
处理上按这个顺序:把 Spotless 的配置导出给 IDE 使用同一份规则;提交前跑一次 apply 而不是靠快捷键;CI 里只做 check 不做自动改写。
改完只确认一件事:同一份文件在 IDE 保存后直接跑 check 能过,不再出现二次改动。
