CheckStyle使用总结(2)
来源:互联网 发布:淘宝分享链接怎么弄 编辑:程序博客网 时间:2024/06/06 02:25
CheckStyle的最佳实践
一、 Sun’s Code Conventions的修改
在CheckStyle的最新发布版本中,有一个对于Sun的Java编码规范的配置文件信息。但是,其中有很多条目并不一定符合项目开发的需要。就算是对于很多优秀的开源项目,按照这个规范来进行检查,也会出现成千上万的错误。
下面提出的一些修改意见,是从实际项目执行过程中总结出来的,可以作为大家的参考。我们以CheckStyle3.0配置文件的顺序来介绍:
1. 去除对于每个包都有一个package.html文件的限制;
<!--<module name="PackageHtml"/>-->
2. 修改对于JavaDoc Comments的限定:对于很多使用Code Generator的项目来说,需要将手写代码与生成代码、单元测试代码的检查分开进行;
3. 修改对于体积大小的限制:目前,很多显示器都是17寸,而且打印方面的限制也比以前有所改善,同时,由于代码中Factory等模式的运用,以及有意义的 方法名称等约定,默认每行代码的长度(80)是远远不能满足要求;对于方法长度等等,也应该根据项目情况自行决定:
<module name="FileLength"/>
<module name="LineLength">
<property name="max" value="120"/>
</module>
<module name="MethodLength">
<property name="max" value="300"/>
</module>
<module name="ParameterNumber"/>
4. 修改对于Throws的的限制:允许Throws Unchecked Exception以及Throws Subclass Of Another Declared Exception。
<module name="RedundantThrows">
<property name="allowUnchecked" value="true"/>
<property name="allowSubclasses" value="true"/>
</module>
5. 修改成员变量的可视性:一般情况下,应该允许Protected Members以及Package Visible Members。
<module name="VisibilityModifier">
<property name="protectedAllowed" value="true"/>
<property name="packageAllowed" value="true"/>
</module>
二、 CheckStyle应用的最佳实践
采用CheckStyle以后,编码规范的检查就变得及其简单,可以作为一项切实可行的实践加以执行。
一般情况下,在项目小组中引入CheckStyle可以按照下面的步骤进行:
1. 强调Code Review与Code Conventions的重要作用;
2. 介绍CheckStyle;
3. 初步应用CheckStyle:参照CheckStyle附带的配置文件,酌情加以剪裁,在项目的Ant配置文件中,添加CheckStyle任务,可以单独执行;
4. 修改、定型CheckStyle的配置文件:按照基本配置文件执行一段时间(2~3周),听取开发人员的反馈意见,修改配置信息;
5. 作为开发过程的日常实践,强制执行CheckStyle:稳定CheckStyle的配置信息,同时将CheckStyle任务作为Build的依赖任务 或者配置源码控制系统(目前,CheckStyle可以与CVS有效集成),使得代码在加入系统之前必须通过检查。
同时需要指出的是,CheckStyle的有效执行需要依赖两个条件:
·Ant的广泛应用:CheckStyle基于Ant执行的方式比较容易,而且可以在项目内容形成一致的执行环境。同时,也比较容易与其它任务,例如Build等发生关联。
示例:
1. 到checkstyle主页下载checkstyle的安装包
2. 解压之后我们会看到很多文件
sun_checks.xml是sun公司的代码规范(我们暂时可以利用sun公司的代码规范检查自己的代码,当然我们也可以针对各个公司的不同标准进行定制),我们还能在contrib目录下看到好多的xsl文件,选择一个就好了,这些文件是为了正确显示检查后的结果用的. 它们规定了怎么去显示检查结果, 样式表.我选择的是/contrib/checkstyle-frames.xsl 这个文件,把它重命名为checkstyle.xsl, 然后所以我们得到了四个文件
- checkstyle-5.0-beta01.jar
- checkstyle-all-5.0-beta01.jar
- sun_checks.xml
- /contrib/checkstyle-frames.xsl
/lib/checkstyle-all-5.0-beta01.jar
4 设置检查规范
在connectfour根目录下建立一个docs的目录,然后把sun_checks.xml放进去/docs/sun_checks.xml
5 修改build.xml,加入checkstyle任务我们打开这个项目的构建文件build.xml加入一下代码
<property name="checkstyle.dir"
value="${basedir}\lib"/>
<path id="checkstyle.dir">
<fileset dir="${checkstyle.dir}">
<include name="*.jar"/>
</fileset>
</path>
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstyle.dir" />
<target name="checkstyle" depends="clean, update,compile,test"
description="Generates a report of code convention violations.">
<mkdir dir="target/check-results"/>
<checkstyle config="docs/sun_checks.xml"
failureProperty="checkstyle.failure"
failOnViolation="false">
<formatter type="xml" tofile="target/check-results/checkstyle_report.xml"/>
<fileset dir="src" includes="**/*.java"/>
</checkstyle>
<style in="target/check-results/checkstyle_report.xml" out="target/check-results/checkstyle_report.html" style="checkstyle.xsl"/>
</target>
6 运行checkstyle 任务
我们在这个项目的根目录下运行ant checkstyle,如果没有错误,证明checkstyle成功运行,这个时候会有一个checkstyle_report.html在target/check-results目录下产生.我们可以用浏览器打开这个html文件就会看到这次检查的结果.
·IDE Format Code的强大功能:由于CheckStyle本身并没有提供很强大的Code Format等功能,因此,需要借助IDE的帮助,从而使得在发生错误的时候,可以很容易的进行修复。目前,主流的Java IDE都提供了这方面的功能,IDEA在这方面尤其突出。它提供的统一、可定义的Code Format Template(项目小组内部可以使用统一模板)以及方便的快捷键功能(Ctrl+Alt+T:Format Code, Ctrl+Alt+O:Optimize Import等)。
参考资料:
http://www.cnblogs.com/bluesky4485/archive/2011/11/30/2269198.html
http://gsdhaiji-cai.iteye.com/blog/1535755
http://www.oschina.net/p/checkstyle/
http://www.blogjava.net/askcuix/archive/2009/02/08/253775.html
http://www.blogjava.net/ashutc/archive/2011/06/03/351690.html
- CheckStyle使用总结(2)
- CheckStyle使用总结(1)
- 静态分析工具及使用总结(二)CheckStyle
- checkStyle 总结
- CHECKSTYLE使用
- checkstyle 使用
- checkstyle插件问题总结
- CheckStyle使用详解
- Struts:CheckStyle使用详解
- Checkstyle使用参考
- CheckStyle使用详解
- Checkstyle的 使用
- checkstyle安装和使用
- checkstyle安装及使用
- CheckStyle使用详细手册
- CheckStyle的使用
- Checkstyle使用参考
- Ant + PMD\Checkstyle使用
- Android的ADB工具使用
- Thread.setDaemon() --守护线程
- Android开发九:从网上下载文件并存储到SD卡中
- STM32驱动FM24CL16
- Fedora 19 x86_64安装杂记
- CheckStyle使用总结(2)
- 10种方法开始贡献到开源项目中去
- find命令参数
- python工作使用笔记
- eclipse创建类,生成构造方法去掉自动注释,使用快捷键创建项目,实体类,实体类的方法。
- Linux目录结构
- IWebBrowser2控件快捷键,DEL,TAB等无效的解决办法
- localhost(操作系统有默认值与其对应,所以不必一定在hosts文件里明写)
- 查看ip或计算机名