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

1、介绍

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

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

报告样式:


使用Checkstyle工具检查java代码风格_第1张图片
image.png

特性/功能:

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

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

  • 我的使用命令行方式运行 checkstyle 的 Demo 地址:
    https://github.com/vir56k/demo/tree/master/checkstyle/%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%96%B9%E5%BC%8Fcheckstyle/MyApplication444

  • 使用 gradle 方式集成 checkstyle 的demo:
    https://github.com/vir56k/demo/tree/master/checkstyle/gradle%E6%96%B9%E5%BC%8Fcheckstyle

2、安装/配置/使用

安装方式有两种

  • 命令行 方式
  • grade 方式

2.1、命令行方式

(1) 下载/安装

下载地址: https://github.com/checkstyle/checkstyle/releases/

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

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

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

  • Google's style;
  • Sun's style.

官网的关于风格的介绍: https://checkstyle.org/style_configs.html

我找到一个华为的 java Style ,比较适合 Android 开发。
下载地址: https://github.com/vir56k/demo/blob/master/checkstyle/MyApplication444/config/huawei_CheckStyle.xml

(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、参考:

https://checkstyle.org/cmdline.html //命令下使用

https://github.com/checkstyle/checkstyle

https://github.com/checkstyle/checkstyle/releases/

https://www.jianshu.com/p/fc2f45a9ee37

https://gist.github.com/ownwell/c32878440216f1866842

你可能感兴趣的:(使用Checkstyle工具检查java代码风格)