如何强制实施一致的 Java 代码格式?
我正在寻找一种方法来强制开发人员使用相同的Java代码格式化规则。我的要求是:
- Gradle 集成
-
检查代码格式是否正确的任务。这将在 CI 上使用,以便在提交格式不正确的代码时导致生成失败
-
修复格式不正确的代码的任务(可有可无)
-
- IntelliJ 集成
- 格式不正确的代码可以通过“重新格式化代码”操作在 IDE 中修复
- 由 IDE 生成的代码(例如 getter/setter 生成)符合规则
- 支持 OpenJDK/Oracle Java 格式化规则
目前,我正在使用以下配置使用Spotless
spotless {
java {
toggleOffOn()
eclipse().configFile("${project.rootDir}/tools/eclipse-java-formatter.xml")
indentWithSpaces()
removeUnusedImports()
}
}
对于IntelliJ集成,我已经安装了Eclipse Code Formatter插件,并将其配置为使用与Spotless相同的规则。
这种方法满足了上述所有要求,除了2.2,即IntelliJ生成的任何代码都必须在符合格式化规则之前重新格式化。另一个问题是,当代码重新格式化时,导入似乎被任意重新排序。这会产生许多虚假的更改,使拉取请求更难以查看。
有没有另一种方法(例如CheckStyle)不会受到这些缺点的影响?