1、ant + findbugs安装
通过Eclipse或者MyEclipse继承ant、findbugs插件。插件可以到网上去下。
注:findbugs最好是下载1.3.9版本,如果是其他版本,可能在运行的时候会提示版本冲突错误!
2、通过findbugs做静态代码检查,此处可以说有两种方式。
A、直接生成HTML报告形式,在项目根目录下新建文件build.xml,将如下代码复制进去
<project name="DHOME_ANDRIOD_CodeCheck" default="findbugs">
<property name ="findbugs.home"
value ="C:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821"/>
<path id="findbugs.lib">
<fileset dir ="${findbugs.home}/lib">
<include name ="findbugs-ant.jar"/>
</fileset>
</path>
<taskdef name="findbugs" classpathref ="findbugs.lib" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"></taskdef>
<target name ="findbugs">
<findbugs home ="${findbugs.home}" jvmargs="-Xmx884m" output ="html" outputFile ="D:/findbugs.html">
<class location ="WebRoot\WEB-INF\classes\com"/>
<auxClasspath path="${findbugs.home}/lib/findbugs-ant.jar"/>
<auxClasspath>
<!--<fileset dir="Z:/BR_Telfort_201000729/BS/CUSTCARE/webapp/WEB-INF/lib" includes="**/*.jar" /> -->
</auxClasspath>
<sourcePath path ="src"/>
</findbugs>
</target>
</project>
说明:
findbugs.home 是下载的findbugs插件存放的路径,我的是在MyEclipse6.5下,即value中的值;
findbugs.lib 是findbugs运行依赖的jar包存放路径(要将findbugs.jar跟findbugs-ant.jar)拷到findbugs插件的lib目录下
taskdef 定义ant任务,name是ant任务名称,classpathref只想jar包路径
target 具体的ant任务output指定输出的格式,class指定要检查的代码存放的路径(因为findbugs是检查的.class文件,所以只想编译后的class文件所在的路径),auxClasspath是findbugs依赖但是不希望其检查的jar包,sourcePath 指定源代码路径
这样设置之后,直接右键改build.xml文件选择ant build即可生成HTML代码检查报告
B、直接在MyEclipse中右键需要检查的类或者包选择find bugs(如果你插件安装正确的话) 即可
3、生成HTML检查报告,也有两种方式可以生成报告
A、即2、中的A
B、添加检查规则(本人不会再xml中添加,就用了下面这个方法)
1)右键要检查的项目,选择properties,点击findbugs选项在Detector configration中选择需要或者不需要的检查规则项即可
2)通过2、中的B检查完成后打开MyEclipse的 Bug Explorer 查看发现的bug ,右键项目 名称,选择save xml会将检查结果保存成一个文件(我命名为findbugs),修改文件的后缀名为 xml(findbugs.xml)
3)在项目根目录下新建build.xml文件,如果已存在,可以将原来的重命名下,添加以下信 息,右键运行即可生成HTML报告
<project name="lt" default="convertHTML" basedir=".">
<property name="findbugs.home"
value="C:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821" />
<property name="findbugs.file" value="D:/findbugs.xml" />
<property name="findbugs.desthtml" value="D:/findbugs.html" />
<path id="findbugs.lib">
<fileset dir="${findbugs.home}/lib">
<include name="findbugs-ant.jar"/>
</fileset>
</path>
<taskdef name="findbugs" classpathref ="findbugs.lib" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" />
<taskdef name="convertXmlToText" classname="edu.umd.cs.findbugs.anttask.ConvertXmlToTextTask">
<classpath refid="findbugs.lib" />
</taskdef>
<target name="convertHTML" >
<!--
<filterBugs home="${findbugs.home}" output="filterBugs.html" withmessages="true" >
<datafile name="${findbugs.file}"/>
</filterBugs>
-->
<convertXmlToText home="${findbugs.home}"
input="${findbugs.file}"
output="${findbugs.desthtml}"
format="html:default.xsl">
</convertXmlToText>
</target>
</project>