Checkstyle 使用说明
一、什么是 Checkstyle?
Checkstyle 是一个检查 Java 代码风格的开发工具,可以使一个多开发人员的项目保持一致的代码风格,更多介绍 查看官网。
二、支持哪些代码风格?
Checkstyle 默认支持 Sun Code Conventions 和 Google Java Style,我们选择基于 Google 的风格做些修改。
- 调整所有缩进x2, 和 IDEA 保持一致。
修改原因:
Google 的默认缩进为 2 个空格,不太习惯,而且层级深了也看不清楚。 相信大部分 Java 程序员从接触 Java 开始都是 4 个空格缩进。 搞不清楚 Google 为什么这样做,不过有些开源项目也有使用 2 缩进的。 但是我们和 IDEA 的缩进风格保持一致。
最终文件:
三、将最终文件导入 IDEA。
将 checkstyle.xml 导入 IDEA,这样一来在 IDEA 中格式化代码就会和 Checkstyle 一致。
- 下载文件至本地电脑
- 打开 IDEA 设置页面
- 选择 Editor -> Code Style
- 点击 Scheme 后面的齿轮图标
- 选择 Import Schema -> Checkstyle configuration -> 选择下载好的 checkstyle.xml 文件
四、Gradle 集成
与 Gradle 集成,我们就可以使用 check 命令检查代码风格,配合 ci 工具,就可以强制检查。
下面是 Gradle8 的配置样例
plugins {
id 'java'
id 'checkstyle'
}
checkstyle {
toolVersion = '10.12.1'
maxWarnings = 0
maxErrors = 0
configFile = rootProject.file('checkstyle.xml')
}
group = 'cool.leenstx.demo'
version = '1.0.0'
test {
useJUnitPlatform {
includeTags("fast")
}
}
注意:上面的配置是默认 checkstyle.xml 文件在 Gradle 项目根目录下。
然后在项目根目录下执行:
./gradlew check
也可以在 IDEA 中 Gradle 界面上进行操作。执行 check 命令后 Checkstyle 会自动生成一份报告文件(html)在 build -> reports 目录下。
五、配置 CI
以我们的 Gitlab 为例。
根据下面的配置修改为你自己的 CI 配置并保存为项目根目录下 .gitlab-ci.xml
即可。
CI 模版(当代码合并时执行代码风格检查,检查通过后开始构建):
image: eclipse-temurin:8
cache:
paths:
- /root/.m2
stages:
- lint
- build
checkstyle:
allow_failure: false
stage: lint
script:
- echo "代码风格检查"
- ./gradlew check
only:
- merge_requests
compile:
stage: build
script:
- echo "开始构建"
- ./gradlew build -x check -x test
only:
- merge_requests
其实(略做配置)会员版 Gitlab 在合并代码界面就可以直接查看 Checkstyle 自动生成的代码质量报告,有兴趣可以自己研究下。
六、扩展
- Spotless: Checkstyle 只是检查,Spotless 可以直接做一些修改,以符合代码风格。
- EditConfig: 查看官网。