使用Checkstyle工具检查java代码风格

2,215 阅读2分钟

1、介绍

Checkstyle是一种开发工具,可帮助程序员编写符合编码标准的Java代码。它使检查Java代码的过程自动化,从而使人类免于这项无聊(但重要)的任务。这使其成为希望实施编码标准的项目的理想选择。

Checkstyle具有高度可配置性,可以支持几乎任何编码标准。提供了一个示例配置文件,支持Sun Code Style,Google Java Style。

报告样式:

\

2044033-7cda2d774de20bbc.png

image.png

特性/功能:

Checkstyle可以检查源代码的许多方面。它可以找到类设计问题,方法设计问题。它还能够检查代码布局和格式问题。

官网地址:checkstyle.org/index.html

2、安装/配置/使用

安装方式有两种

  • 命令行 方式
  • grade 方式

2.1、命令行方式

(1) 下载/安装

下载地址: github.com/checkstyle/…

我这里下载的是 checkstyle-8.17-all.jar ,下载到本地是个 java包,我们在本地配置好java环境,即可通过 java 指令来启动他。

(2) 配置规则(Style, Rule)

官网提供了两种代码风格的规则:

官网的关于风格的介绍: checkstyle.org/style_confi…

我找到一个华为的 java Style ,比较适合 Android 开发。
下载地址: github.com/vir56k/demo…

(3) 使用 checkstyle 检查代码风格

使用 google 风格

java -jar checkstyle-8.17-all.jar -c /google_checks.xml /Users/zhangyunfei/git/MyApplication33/app/src

使用 sun 风格

 java -jar checkstyle-8.17-all.jar -c /sun_checks.xml /Users/zhangyunfei/git/MyApplication444

使用华为风格:

java -jar checkstyle-8.17-all.jar -c ./huawei_CheckStyle.xml /Users/zhangyunfei/git/MyApplication33/app/src/main/java

下面是我使用的示例截图:

\

2044033-0b999ba20dee0148.png

image.png

2.2、gradle 方式

常用的方式还是在gradle下配置

2.2.1 配置说明

gradle 方式 配置 checkstyle 脚本存放在 scripts 文件夹下

checkstyle.gradle           grald脚本配置,关键在这里
huawei_CheckStyle.xml       规则配置
suppressions.xml            规则配置

checkstyle.gradle 脚本内容:

      apply plugin: 'checkstyle'


  def configDir = "${project.rootDir}/scripts"
  def reportsDir = "${project.buildDir}/reports"


  task checkstyle(type: Checkstyle) {
      configFile file("$configDir/checkstyle/huawei_CheckStyle.xml")
      configProperties.checkstyleSuppressionsPath = file("$configDir/checkstyle/suppressions.xml").absolutePath
      source 'src'
      include '**/*.java'
      exclude '**/gen/**'
      exclude '**/test/**'
      exclude '**/androidTest/**'

      classpath = files()
  }


  check.dependsOn 'checkstyle'

2.2.2 怎么应用?

在 app 的 build.gradle 中加入下面引用

 apply from: '../scripts/checkstyle/checkstyle.gradle'

2.2.3 执行 checkstyle

./gradlew clean check

2.2.4 查看报告

报告存放于:app/build/reports/checkstyle/ 文件夹下

2.2.5 常见问题

gradle 下载不到包的问题,请使用阿里镜像,示例:

allprojects {
    repositories {
        maven { url "https://maven.aliyun.com/repository/jcenter/" }
        maven { url "https://maven.aliyun.com/repository/gradle-plugin/" }
        maven { url "https://maven.aliyun.com/repository/google/" }
        jcenter()
        google()

    }
}

3、参考:

checkstyle.org/cmdline.htm… //命令下使用

github.com/checkstyle/…

github.com/checkstyle/…

www.jianshu.com/p/fc2f45a9e…

gist.github.com/ownwell/c32…