日期:2014-05-16  浏览次数:20393 次

findbugs 如何安装使用
一、简介
       Findbugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。利用这个工具,就可以在不实际运行程序的情况对软件进行分析。它可以帮助改进代码的质量。

       Findbugs提供了方便操作的可视化界面,同时也可以作为Eclipse的一个插件来使用,而我们使用得最多的还是作为Eclipse的插件来使用。

二、使用方法
       Findbugs可以通过三种方法使用,可以通过Ant工具,通过Ant提供的Swing操作界面和作为Eclipse的一个插件来使用。

1. Ant工具
Ant是一个很好的Java自动执行工具。

         Findbugs官方提供了Ant的findbugs操作方法,我们可以通过这样一个build.xml文件来使用findbugs。

<project name="项目名" default="all">
<property name="findbugs.home" value="findbugs解压路径" />
              <path id="findbugs.path">
                  <fileset dir="findbugs解压路径">
                        <include name="**/*.jar" />
                   </fileset>
              </path>
              <taskdef name="findbugs"
                   classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
                   classpathref="findbugs.path" />
              <!--  定义findbugs的home,findbugs的task要使用  -->
              <target name="findbugs">
                   <findbugs home="${findbugs.home}"
                        output="xml:withMessages" outputFile="生成的文件">
 
                        <!--  以上定义findbugs查找的类路径  -->
                        <auxClasspath path="${findbugs.home}/lib/findbugs-ant.jar" />
                        <auxClasspath>
                            <fileset dir="lib"
                            includes="*.jar" />
                        </auxClasspath>
                        <sourcePath path="源文件路径" />
                        <class location="生成类路径" />
                   </findbugs>
          </target>

     </project>


比如:我这里有一个我放在博客上的项目的findbugs的ant操作的build文件。
<project name="Calendar" default="all">
<property name="findbugs.home" value="../../findbugs-1.3.8" />
              <path id="findbugs.path">
                  <fileset dir="../../findbugs-1.3.8">
                        <include name="**/*.jar" />
                   </fileset>
              </path>
              <taskdef name="findbugs"
                   classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
                   classpathref="findbugs.path" />
              <!--  定义findbugs的home,findbugs的task要使用  -->
              <target name="findbugs">
                   <mkdir dir="target/findbugs"/>
                   <findbugs home="${findbugs.home}"
                        output="xml:withMessages" outputFile="target/findbugs/calendar-fb.xml">
                        <!--  以上定义findbugs查找的类路径  -->
                        <auxClasspath path="${findbugs.home}/lib/findbugs-ant.jar" />
                        <auxClasspath>
                            <fileset dir="lib"
                            includes="*.jar" />
                        </auxClasspath>
                        <sourcePath path="src" />
                        <class location="target/classes" />
                   </findbugs>
          </target>

     </project>

设置好Ant的环境后,在命令中使用ant -f build.xml,或者在Eclipse直接运行build.xml文件,运行后生成了一个xml文件,如果你想用Html的格式查看findbugs的结果,可以把output属性设为:html。这样就可以通过Html来查看findbugs的结果了。

2. 提供的Swing工具
       Ant操作是专家级的操作,一般对于Java不是很熟悉的人,写build.xml文件。比起Ant来,使用Findbugs提供的Swing工具会使Findbugs的操作更加简单。运行Findbugs解压包中的bin文件夹下的findbugs.bat文件。

Findbugs的Swing工具初始主界面如下:





在分析项目之前,我们必须要新建一个项目来分析,选择文件->新建

显示新建项目的界面如下图: