为了统一一个项目或团队成员的代码风格、遵守统一的代码规范,就需要团队使用相同的代码规范文件,并在代码编写、保存时按统一的代码风格进行格式化,并在编译、打包时强制进行代码规范检查,这样才能保证源码的风格统一,代码规范。
本文讲解如何基于checkstyle,实现一个项目源码的代码风格、规范统一。
checkstyle 是检查Java源代码是否符合代码标准或一组验证规则(最佳实践)的工具。
CheckStyle-IDEA: 是IDEA中使用CheckStyle进行代码规范检查的插件,
插件内置了Sun、Google的代码检查规范,也可以根据实际需要,导入自己的代码检查规范文件。
大部分公司都会制定自己的代码检查规范,一些大的开源项目也提供对应的代码检查规范文件,如海豚调度的代码规范检查文件
本文测试使用的IDEA的版本是:IntelliJ IDEA 2021.3.2 (Community Edition),安装的checkstyle插件版本是:5.67.4
在IDEA中安装checkstyle比较简单,可以在线安装,也可以将插件下载到本地后,进行离线安装
将checkstyle.xml文件放在idea安装目录或项目源码的根目录,如下图所示,放在源码根目录下的style目录下
checkstyle.xml的内容可以参考海豚调度的代码规范检查文件做适应调整。
也可以根据公司要求,制定自己的代码规范检查文件
如下图所示,导入准备的checkstyle.xml文件,并激活此配置.
在IDEA中, code style也可以通过checkstyle来进行配置,如下图所示, 导入准备的checkstyle.xml文件, 并将scheme重命名为my-checks【根据个人喜好命名】
注意:是按代码检查规范的要求针对代码进行格式化。
配置文件保存时的运作,如下图所示,保存时触发的运作包括如下:
在IDEA中,可以针对所有源码或某一个package下的源码进行格式化,如下图所示
这样在运行checkstyle检查后,就不会报太多不符合规范的错误。
可以针对project、module、当前文件进行代码检查,如下图,是检查结果
针对不符合规范的内容,要进行代码重构。
以下的配置是在代码编译或打包时,强制触发代码检查,如果代码检查不能过,则编译或打包会失败。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.45</version>
</dependency>
</dependencies>
<configuration>
<consoleOutput>true</consoleOutput>
<encoding>UTF-8</encoding>
<configLocation>style/checkstyle.xml</configLocation>
<failOnViolation>true</failOnViolation>
<violationSeverity>warning</violationSeverity>
<includeTestSourceDirectory>false</includeTestSourceDirectory>
<sourceDirectories>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</sourceDirectories>
<excludes>**\/generated-sources\/</excludes>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>