前言html
现在,代码规范几乎是当下稍有追求的团队都要求作到的,可是对于Java编码规范,不一样的公司或团队却有着不一样的标准。尽管官方提供了一些标准,可是在基本规则的基础上,各大公司又有本身的规范,好比Sun,Google,华为,阿里等都推出了本身的规范标准,因此对规范进行定制,是常有的需求。而CheckStyle就是这样一款优秀的代码规范审查工具,它容许用户自定义审查标准,而无需人工审查,也无需受限于某一套规则。CheckStyle提供了命令行和插件两种使用方方式,本文将结合Android Studio导入插件的使用方式,来介绍它,但愿你们可以好好享受这款插件。git
1、CheckStyle简介程序员
Checkstyle是一个开发工具,能够帮助程序员编写遵循编码标准的Java代码。它自动化了检查Java代码的过程,以免人类完成这一枯燥(但很重要)的任务。这使得它很是适合那些但愿实施编码标准的项目。Checkstyle是高度可配置的,能够支持几乎任何编码标准,默认内置Sun Java编码规范和Google Java编码规范两套配置文件,咱们也能够根据本身的须要配置本身的规范。github
2、CheckStyle的检查项正则表达式
CheckStyle对Java编码规范的检查项主要包括了以下14项:缓存
(1)Annotations:注解。好比deprecad、override、Suppress Warnings等注解符号以及注解风格使用等。网络
(2)Block Checks:代码块检测。好比代码块嵌套、空代码块等代码块问题。编辑器
(3)Class Design:类设计。好比类的修饰符,设计扩展性,构造函数等相关的问题。ide
(4)Coding编码问题:代码中出现的漏洞,性能,冗余等代码相关的问题。函数
(5)Headers:头文件。
(6)Imports:包的导入问题。好比标准中要求避免使用统配导入、避免静态导入、导入顺序,非法导入等。
(7)Javadoc Comments:文档注释。包、类、方法等的归档注释问题。
(8)Metrics:度量。好比布尔表达式复杂度、循环复杂度等各类复杂度问题。
(9)Miscellaneous:杂项。好比代码缩进,一些有用的但非必须的System.out和printstackTrace等问题。
(10)Modifiers:修饰符。好比修饰符是否用对,是否多余,修饰符顺序等。
(11)Naming Conventions:命名约定。包、类、方法、变量等的命令问题。
(12)Regexp:正则表达式。
(13)Size Violations:尺寸超标。好比匿名内部类长度,文件长度,代码每一行长度,方法数量,等超过规范。
(14)Whitespace:空格。在规范中,要求某些操做符,指定标记等周围须要有空格。
参考:https://blog.csdn.net/cainiao_accp/article/details/77444028,
3、CheckStyle的安装
与其它的插件同样,CheckStyle插件也提供了直接在AS的仓库中安装和手动离线安装两种方式。
一、直接从AS的插件库下载安装
至于如何在AS插件库中安装插件,在个人另一篇介绍FindBugs的文章【http://www.javashuo.com/article/p-tqxvbbgf-cq.html】中已经介绍过了,这里就不赘述了。简单说一下就是File > Settings > Plugins > Browse repositories 搜索 “CheckStyle”,找到“CheckStyle-IDEA”这一项,按照提示进行安装,而后重启便可。笔者采用这种方式安装时,提示了好几回网络异常,资源无响应等现象,不过多尝试几回就行了。
二、手动下载并从磁盘安装
请从以下地址获取离线安装包:
连接:
提取码:
4、使用CheckStyle进行分析
一、启动CheckStyle
(1)在AS的左下角有个“CheckStyle”按钮,从这里能够打开CheckStyle面板,从中启动扫描功能。该面板各项功能在下文会详细介绍。
(2)在Java文件的编辑界面点击右键,在弹出的菜单中找到“Check Current File”,点击便可开始扫描。默认是检测当前文件,在控制面板中能够选择检测范围。
二、检查结果
检查完后会显示以下CheckStyle面板,会展现检查出来的各项问题点。该面板各个区域的功能,后面再详细介绍。
经过点击检查结果列表区域,能够定位到问题代码源码处。
5、CheckStyle面板介绍
一、工具栏
(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:展现信息结果
对照说明和每一项的运行结果,各个功能项的做用就很容易理解了。
二、选择检查规则
②处须要事先选择好扫描所采用的代码规范配置文件,默认是没有选择的。
默认这里只有“Sun Checks”和“Google Checks”,“Huawei_CheckStyle”是华为的规范配置,“songwei-style”是本身配置的规范。选择其中某项后,才能以该项对应的配置文件来进行检查。如何添加/删除配置文件,后文会再讲到。
三、检查结果列表
③处显示检查后的结果,以树状结果展现。点击具体某一项后,能够直接跳到问题代码处。
6、配置CheckStyle
File > Settings > Checkstyle就可进入到以下配置界面。
这里咱们介绍部分区域功能,其它部分比较简单,就很少说了。
一、扫描范围
选择扫描范围,每一项含义比较简单,就很少介绍了。
二、管理配置文件(这一项很重要)
这里面默认的只有“Sun Checks”和“Google Checks”,后面有“bundled”标识,标识是捆绑在CheckStyle插件中的。要采用哪套规则做为规范标准,须要选中该项。左边的按钮就是添加新的配置文件或者对选中的配置项删除或者编辑。这里着重介绍一下添加新配置项,点击“+”按钮弹出以下对话框:
配置好后,按照向导操做便可。
7、定制配置文件
因为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常见的一些使用方法,必定还有不少很牛的功能,但愿读者们多多探索,多多交流,共同进步,谢谢!