CheckStyle,定制自己的Java编码规范

Posted andy-songwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CheckStyle,定制自己的Java编码规范相关的知识,希望对你有一定的参考价值。

前言

 

一、CheckStyle简介

       Checkstyle是一个开发工具,可以帮助程序员编写遵循编码标准的Java代码。它自动化了检查Java代码的过程,以避免人类完成这一枯燥(但很重要)的任务。这使得它非常适合那些希望实施编码标准的项目。Checkstyle是高度可配置的,可以支持几乎任何编码标准,默认内置Sun Java编码规范和Google Java编码规范两套配置文件,我们也可以根据自己的需要配置自己的规范。

 

二、CheckStyle的安装

       与其它的插件一样,CheckStyle插件也提供了直接在AS的仓库中安装和手动离线安装两种方式。

  1、直接从AS的插件库下载安装

       至于如何在AS插件库中安装插件,在我的另外一篇介绍FindBugs的文章【https://www.cnblogs.com/andy-songwei/p/11820564.html】中已经介绍过了,这里就不赘述了。简单说一下就是File > Settings > Plugins > Browse repositories 搜索 “CheckStyle”,找到“CheckStyle-IDEA”这一项,按照提示进行安装,然后重启即可。笔者采用这种方式安装时,提示了好几次网络异常,资源无响应等现象,不过多尝试几次就好了。

  2、手动下载并从磁盘安装

       请从如下地址获取离线安装包:

       链接:

       提取码:

 

三、使用CheckStyle进行分析

  1、启动CheckStyle

    (1)在AS的左下角有个“CheckStyle”按钮,从这里可以打开CheckStyle面板,从中启动扫描功能。该面板各项功能在下文会详细介绍。

       技术图片

 

    (2)在Java文件的编辑界面点击右键,在弹出的菜单中找到“Check Current File”,点击即可开始扫描。默认是检测当前文件,在控制面板中可以选择检测范围。

 

 技术图片

 

 

  2、检查结果

       检查完后会显示如下CheckStyle面板,会展示检查出来的各项问题点。该面板各个区域的功能,后面再详细介绍。

技术图片

 

 通过点击检查结果列表区域,可以定位到问题代码源码处。

 

四、CheckStyle面板介绍

  1、工具栏

 技术图片

 

    (1)Close CheckStyle Window:关闭CheckStyle面板窗口

    (2)Stop the running scan:停止当前正在运行的扫描

    (3)Check Current File:在编辑器中当前文件上运行CheckStyle

    (4) Check Module:在当前Module上运行CheckStyle

    (5)Check Project:在当前项目上运行CheckStyle

    (6)Check All Modified Files:检查所有修改的文件,结合版本控制工具一起使用。

    (7)Check Files in the Current Change List:检查当前change list中的文件

    (8)Reload Rules files:清理规则文件(即配置文件)缓存和黑名单,强制重新加载改变后的规则文件。

    (9)Autoscroll to Source:自动滚动到错误和警告的源码位置处。

    (10)Expand All:展开所有工具窗口(即控制面板)的元素

    (11)Collapse All:收起所有工具窗口的元素

    (12)Display Errors:展示错误,结果窗口会显示

    (13)Dispaly Warnings:展示警告

     (14)Display Information Results:展示信息结果

       对照说明和每一项的运行结果,各个功能项的作用就很容易理解了。

  2、选择检查规则

       ②处需要事先选择好扫描所采用的代码规范配置文件,默认是没有选择的。

技术图片

 

 默认这里只有“Sun Checks”和“Google Checks”,“Huawei_CheckStyle”是华为的规范配置,“songwei-style”是自己配置的规范。选择其中某项后,才能以该项对应的配置文件来进行检查。如何添加/删除配置文件,后文会再讲到。

  3、检查结果列表

       ③处显示检查后的结果,以树状结果展示。点击具体某一项后,可以直接跳到问题代码处。

 

五、配置CheckStyle

       File > Settings > Checkstyle就可进入到如下配置界面。

技术图片

 

这里我们介绍部分区域功能,其它部分比较简单,就不多说了。

  1、扫描范围

       选择扫描范围,每一项含义比较简单,就不多介绍了。

技术图片

2、管理配置文件(这一项很重要)

       这里面默认的只有“Sun Checks”和“Google Checks”,后面有“bundled”标识,标识是捆绑在CheckStyle插件中的。要采用哪套规则作为规范标准,需要选中该项。左边的按钮就是添加新的配置文件或者对选中的配置项删除或者编辑。这里着重介绍一下添加新配置项,点击“+”按钮弹出如下对话框:

技术图片

 

配置好后,按照向导操作即可。

 

六、定制配置文件

       由于Sun和Google的检查过于严格,所以一般我们需要自己配置或者使用国内业界比较知名的成熟配置方案,比如华为的配置文件。如果我们要完全自己定制的话,可以参照Sun、Google、华为等的模板进行修改。这里提供这三种配置文件的路径:

    (1)华为配置文件

       链接:https://pan.baidu.com/s/1tlvHtezgjwRIUA8DBVYFUQ

       提取码:qxji 

    (2)Sun Check配置文件

       https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/sun_checks.xml

    (3)Google Check配置文件

       https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml

      这些文件都是以 <module>...</module>对的形式组成的,这每一对就表示了一条匹配的规则。如下就是一条对“JavadocType”的匹配规则,如果不需要检查这一项,可以直接注释掉,或者根据需要做其它修改。

1 <module name="JavadocType">
2     <property name="authorFormat" value="S"/>
3     <property name="scope" value="protected"/>
4     <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/>
5 </module>

如果需要了解每一个属性的作用等更深入的知识,可以查看CheckStyle官网:https://checkstyle.org/index.html进行学习,这里就不深入介绍了。

以上是关于CheckStyle,定制自己的Java编码规范的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse提高开发速度-插件篇Checkstyle的使用

Eclipse-Java代码规范和质量检查插件-Checkstyle

CheckStyle

IDEA CheckStyle

IDEAL葵花宝典:java代码开发规范插件 checkstylevisualVMPMD 插件

Java代码规范和质量检查插件-Checkstyle(官方资源)