Checkstyle使用参考.docx
《Checkstyle使用参考.docx》由会员分享,可在线阅读,更多相关《Checkstyle使用参考.docx(21页珍藏版)》请在冰豆网上搜索。
Checkstyle使用参考
Checkstyle使用参考
一、Checkstyle简介
Checkstyle是一个帮助开发者按照某种习惯编写java代码的工具,他实现了代码检查的自动化,帮助人们从这种繁琐的工作中解放出来。
默认提供了对sun编程规范的支持,但是Checkstyle是一个具有高可配置性的,你完全可以根据自己的要求来配置需要检查的内容。
二、Checkstyle+Ant
1下载安装
1.1Ant的下载安装
下载apache-ant-1.6.5-bin.zip,然后解压缩到C:
\apache-ant-1.6.5(或其它路径下)。
添加新的环境变量ANT_HOME
添加新的变量值到环境变量Path中
在Dos窗口下输入ant回车,如果看到下图的内容,说明Ant已经成功安装了。
如果没看到上图的信息,请根据运行环境的实际情况检查下列信息
ANT_HOME=C:
\apache-ant-1.6.5
JAVA_HOME=C:
\j2sdk1.4.2_08
Path=%ANT_HOME%\bin;%JAVA_HOME%\bin;(后面还有很多,这里就省略了)
ClASSPATH=.;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\tools.jar
(注意上面一行等号后面是个点“.” 后面接分号)
1.2Checkstyle的下载安装
下载checkstyle-4.2.zip,然后解压缩到C:
\checkstyle-4.2(或其它路径下),下文提到这个路径时将使用CHECKSTYLE_HOME代替。
将CHECKSTYLE_HOME目录下的checkstyle-optional-4.2.jar拷贝到ANT_HOME\lib目录下
2.使用Ant实现代码检查
使用Ant实现代码检查,我们共需要三个文件build.xml,user.properties和sunrising_checks.xml,下面分别对讲解这三个文件。
2.1user.properties
这个文件是将要在build.xml中用的属性文件,用户可以自定义下面的常用的属性
#项目名称
project.name=TopShelf
#项目所在的路径
project.dir=F\:
\\eclipse\\WorkSpace20061012\\WordEmTest
#源文件所在的路径
project.src.dir=${project.dir}\\src
#报告生成的位置,默认的位置为${project.dir}\\report
#如果需要在其它位置生成报告,请删除下面一行前面的"#",并且在等号后面给出路径
#project.checkstyle.report.dir=newpathhere
#检测结果文件名,默认为${project.name}-checkstyle-result-${DSTAMP}.xml
#如果需要在改成其它的文件名,请删除下面一行前面的"#",并且在等号后面给出新的文件名
#project.check.result.name=newnamehere
#检测报告文件名,默认为${project.name}-checkstyle-report-${DSTAMP}.html
#如果需要在改成其它的文件名,请删除下面一行前面的"#",并且在等号后面给出新的文件名
#project.check.report.name=newnamehere
#checkstyle的配置文件,默认的配置文件为${basedir}/sunrising_checks.xml
#如果需要使用其它的配置文件,请删除下面一行前面的"#",并且在等号后面给出配置文件的路径
#checkstyle.config=newpathhere
#checkstyle的报告风格,默认值为${basedir}/contrib/checkstyle-noframes.xsl
#checkstyle.report.style=newstylehere
2.2build.xml
这个文件是运行Ant时需要用的文件
--导入属性文件-->
--报告的生成位置-->
--检测结果的文件名-->
--检测报告的文件名-->
--所使用的配置文件-->
--报告风格-->
--检测结果-->
--检测报告-->
--新建报告所在的文件夹-->
--failOnViolation:
检测到问题时是否停止-->
--failureProperty:
是否有问题,这个参数在此暂没有用到-->
--SeeCHECKSTYLE_HOME/docs/anttask.html-->
--生成报告,其格式取决于${checkstyle.report.style}-->
2.3sunrising_checks.xml
这个文件是Checkstyle在执行代码检测时需要用的配置文件,里面定义的检查规则。
详细的规则定义将在第四节做详细介绍。
2.4执行步骤
A)将上面提到的三个文件拷贝到CHECKSTYLE_HOME目录下
B)打开DOS窗口进入到CHECKSTYLE_HOME目录下
C)输入ant,然后回车,如果能看到BUILDSUCCESSFUL就成功了。
三、Checkstyle+Eclipse
1安装Checkstyle的Eclipse的插件
A)首选下载Checkstyle的Eclipse的插件-com.atlassw.tools.eclipse.checkstyle_4.1.1-bin.zip
B)将插件解压缩后,将features和plugins和文件夹中的内容拷贝到Eclipse下对应的文件夹下
C)删除ECLIPSE_HOME\configuration\下的org.eclipse.update文件夹,然后重新启动Eclipse
2在Eclipse中使用Checkstyle
A)插件安装成功后,在Eclipse中点击Window->Preferences选项可以看到下图
B)在项目上使用Checkstyle。
右键单击项目,选择Properties选项后可以看到下图
1)选择Checkstyle
2)选中CheckBox-Checkstyleactiveforthisproject
3)从下拉列表中选择一个Checkstyle的配置文件
4)点击OK
查看项目中的任意一个源文件,可以看到类似下图的情况:
将鼠标指向图中的放大镜处稍做停留便可看到提示信息,如图片中的”MissingaJavadoccomment.”
四、Checkstyle配置文件的简要说明
关于配置文件的各个模块的更多细节,请参考CHECKSTYLE_HOME/docs/index.html
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEmodulePUBLIC"-//PuppyCrawl//DTDCheckConfiguration1.2//EN"
"
--对于所有的模块来书,如果有这个模块则说明检测这一项,没有则不检测这一项-->
--所有的模块中,其ROOT必须为Checker-->
--检验每个包是否存在package.html文件-->
--See-->
--
-->
--检验每个文件末尾是否有一个空行-->
--See-->
--
-->
--Checksthatpropertyfilescontainthesamekeys.-->
--See-->
--ChecksforJavadoccomments.-->
--See-->
--ChecksJavadoccommentsformethoddefinitions.-->
--是否允许错误的参数声明,true为允许,缺省为不允许-->
--是否允许错误的错误声明,true为允许,缺省为不允许-->
--是否允许错误的返回类型声明,true为允许,缺省为不允许-->
--ChecksJavadoccommentsforclassandinterfacedefinitions.-->
--ChecksthatvariableshaveJavadoccomments.-->
--检查Javadoc的格式-->
--Comment的第一句的末尾是否要有一个句号,true必须有,default为true-->
--检查错误的HTML脚本,比如不匹配,true检查,default为true-->
--ChecksforNamingConventions.-->
--See-->
--确省必须以Abstract开始或者以Factory结束-->
--
-->
--ChecksforHeaders-->
--See-->
--检查文件是否以指定文件开始,这里最好是放一些版权信息和工程描述-->
--headerFile:
指定的文件-->
--ignoreLines:
忽略哪些行,以","分隔-->
--
-->
--Followinginterpretstheheaderfileasregularexpressions.-->
--
-->
--Checksforimports-->
--See-->
--检查使用*号的导入,默认为全部类-->
--检查是否有非法的包,确省检查sun.*;对于某些包是不建议直接调用的-->
--检查多于的导入,如一个类导入了多次-->
--检查没有使用的导入-->
--导入排序-->
--groups:
分组,哪些是一组的-->
--ordered:
同一个组内是否排序,true排序,确省为true-->
--separated:
各个组之间是否需要用空行分隔,确省为false-->
--caseSensitive:
是否是大小写敏感的,确省是-->
--
-->
--ChecksforSizeViolations.-->
--See-->
--检查方法内可执行语句的个数,确省为30行-->
--
-->
--文件的最大行数,缺省为1500-->
--每行的最大字符数,缺省为80-->
--忽略指定格式的行,如*号开始的,等-->
--
-->
--方法的最大行数,缺省为150-->
--统计时是否包括空行和以//开始的注释,缺省为统计(true)-->
--匿名类的最大行数,缺省为20-->
--检查方法和构造子参数的最大个数,缺省为7-->
--Checksforwhitespace-->
--See-->
--ModifierChecks-->
--See-->
--要求JLSsuggestions-->
--
-->
--Checksforblocks.Youknow,those{}'s-->
--See-->
--检查空块-->
--
-->
--检查只有必须有{},确省为必须,主要在if,else时有这样的情况-->
--检查"}",确省在同一行-->