Checkstyle使用参考Word格式.docx
《Checkstyle使用参考Word格式.docx》由会员分享,可在线阅读,更多相关《Checkstyle使用参考Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
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时需要用的文件
<
projectname="
checkstyle"
default="
basedir="
."
>
<
!
--导入属性文件-->
<
propertyfile="
user.properties"
/>
targetname="
init"
tstamp/>
--报告的生成位置-->
propertyname="
project.checkstyle.report.dir"
value="
${project.dir}/report"
/>
--检测结果的文件名-->
project.check.result.name"
${project.name}-checkstyle-result-${DSTAMP}.xml"
--检测报告的文件名-->
project.check.report.name"
${project.name}-checkstyle-report-${DSTAMP}.html"
--所使用的配置文件-->
checkstyle.config"
${basedir}/sunrising_checks.xml"
--报告风格-->
checkstyle.report.style"
${basedir}/contrib/checkstyle-noframes.xsl"
--检测结果-->
checkstyle.result"
${project.checkstyle.report.dir}/${project.check.result.name}"
--检测报告-->
checkstyle.report"
${project.checkstyle.report.dir}/${project.check.report.name}"
--新建报告所在的文件夹-->
mkdirdir="
${project.checkstyle.report.dir}"
/target>
taskdefresource="
checkstyletask.properties"
classpath="
${basedir}/checkstyle-all-4.2.jar"
depends="
description="
Checkjavacodeandreport"
--failOnViolation:
检测到问题时是否停止-->
--failureProperty:
是否有问题,这个参数在此暂没有用到-->
--SeeCHECKSTYLE_HOME/docs/anttask.html-->
checkstyleconfig="
${checkstyle.config}"
failOnViolation="
false"
failureProperty="
checkstyle.failure"
formattertype="
xml"
tofile="
${checkstyle.result}"
filesetdir="
${project.src.dir}"
includes="
**/*.java"
/checkstyle>
--生成报告,其格式取决于${checkstyle.report.style}-->
stylein="
out="
${checkstyle.report}"
style="
${checkstyle.report.style}"
/project>
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-->
modulename="
Checker"
--检验每个包是否存在package.html文件-->
--See-->
--
PackageHtml"
-->
--检验每个文件末尾是否有一个空行-->
NewlineAtEndOfFile"
--Checksthatpropertyfilescontainthesamekeys.-->
Translation"
TreeWalker"
--ChecksforJavadoccomments.-->
--ChecksJavadoccommentsformethoddefinitions.-->
JavadocMethod"
scope"
public"
--是否允许错误的参数声明,true为允许,缺省为不允许-->
allowMissingParamTags"
true"
--是否允许错误的错误声明,true为允许,缺省为不允许-->
allowMissingThrowsTags"
--是否允许错误的返回类型声明,true为允许,缺省为不允许-->
allowMissingReturnTag"
/module>
--ChecksJavadoccommentsforclassandinterfacedefinitions.-->
JavadocType"
--ChecksthatvariableshaveJavadoccomments.-->
JavadocVariable"
protected"
--检查Javadoc的格式-->
JavadocStyle"
--Comment的第一句的末尾是否要有一个句号,true必须有,default为true-->
checkFirstSentence"
--检查错误的HTML脚本,比如不匹配,true检查,default为true-->
checkHtml"
--ChecksforNamingConventions.-->
--确省必须以Abstract开始或者以Factory结束-->
AbstractClassName"
ConstantName"
LocalFinalVariableName"
LocalVariableName"
MemberName"
MethodName"
PackageName"
ParameterName"
StaticVariableName"
TypeName"
--ChecksforHeaders-->
--检查文件是否以指定文件开始,这里最好是放一些版权信息和工程描述-->
--headerFile:
指定的文件-->
--ignoreLines:
忽略哪些行,以"
"
分隔-->
Header"
headerFile"
java.header"
ignoreLines"
2,3,4,5"
--Followinginterpretstheheaderfileasregularexpressions.-->
RegexpHeader"
--Checksforimports-->
--检查使用*号的导入,默认为全部类-->
AvoidStarImport"
--检查是否有非法的包,确省检查sun.*;
对于某些包是不建议直接调用的-->
IllegalImport"
illegalPkgs"
sun.*"
--检查多于的导入,如一个类导入了多次-->
RedundantImport"
--检查没有使用的导入-->
UnusedImports"
--导入排序-->
--groups:
分组,哪些是一组的-->
--ordered:
同一个组内是否排序,true排序,确省为true-->
--separated:
各个组之间是否需要用空行分隔,确省为false-->
--caseSensitive:
是否是大小写敏感的,确省是-->
ImportOrder"
groups"
java,javax"
ordered"
separated"
caseSensitive"
--ChecksforSizeViolations.-->
--检查方法内可执行语句的个数,确省为30行-->
ExecutableStatementCount"
max"
30"
--文件的最大行数,缺省为1500-->
FileLength"
2000"
--每行的最大字符数,缺省为80-->
LineLength"
--忽略指定格式的行,如*号开始的,等-->
ignorePattern"
^*\**[^]+$"
120"
--方法的最大行数,缺省为150-->
MethodLength"
200"
--统计时是否包括空行和以//开始的注释,缺省为统计(true)-->
countEmpty"
--匿名类的最大行数,缺省为20-->
AnonInnerLength"
60"
--检查方法和构造子参数的最大个数,缺省为7-->
ParameterNumber"
--Checksforwhitespace-->
EmptyForInitializerPad"
EmptyForIteratorPad"
MethodParamPad"
allowLineBreaks"
NoWhitespaceAfter"
NoWhitespaceBefore"
OperatorWrap"
ParenPad"
TypecastParenPad"
TabCharacter"
WhitespaceAfter"
WhitespaceAround"
--ModifierChecks-->
--要求JLSsuggestions-->
ModifierOrder"
RedundantModifier"
--Checksforblocks.Youknow,those{}'
s-->
--检查空块-->
EmptyBlock"
LeftCurly"
--检查只有必须有{},确省为必须,主要在if,else时有这样的情况-->
NeedBraces"
--检查"
}"
确省在同一行-->
RightCurly"
prope