1.快速入门
如果您在Windows系统上运行FindBugs,请双击该文件
以启动FindBugs GUI。%FINDBUGS_HOME%
\lib\findbugs.jar
在Unix,Linux或Mac OS X系统上,运行该
脚本或运行该命令$FINDBUGS_HOME
/bin/findbugs
java -jar $FINDBUGS_HOME/lib/findbugs.jar
运行FindBugs GUI。
有关如何使用的信息 请参阅 GUI。
2.执行FindBugs
本节介绍如何调用FindBugs程序。调用FindBugs有两种方法:直接或使用包装器脚本。
2.1。直接调用FindBugs
运行FindBugs的首选方法是直接
使用 JVM(java)可执行文件的-jar命令行开关执行。(1.3.5之前的FindBugs版本需要一个包装脚本来调用FindBugs。)$FINDBUGS_HOME
/lib/findbugs.jar
直接 调用FindBugs的一般语法如下:
java [JVM arguments]-jar $FINDBUGS_HOME/lib/findbugs.jaroptions...
2.1.1。选择用户界面
第一个命令行选项选择要执行的FindBugs用户界面。可能的值是:
-
-gui:运行图形用户界面(GUI)
-
-textui:运行命令行用户界面
-
-version:显示 FindBugs版本号
-
-help:显示 FindBugs命令行用户界面的 帮助信息
-
-gui1:执行原始(过时的) FindBugs图形用户界面
2.1.2。Java虚拟机(JVM)参数
调用FindBugs时,几个Java虚拟机参数很有用 。
将最大Java堆大小设置为NN
兆字节。 FindBugs通常需要大量的内存。对于一个非常大的项目,使用1500兆字节并不罕见。
-Xmx NN
m
-D name
=value
设置一个Java系统属性。例如,您可以使用参数-Duser.language = ja以日语显示GUI消息。
2.2。使用包装脚本调用FindBugs
运行FindBugs的另一种方式是使用包装脚本。
在类Unix系统上,使用以下命令来调用包装脚本:
$ $FINDBUGS_HOME/斌/ FindBugs的 options...
在Windows系统上,调用包装脚本的命令是
C:\My Directory>%FINDBUGS_HOME%\ BIN \ findbugs.bat options...
在类Unix和Windows系统上,只需将
目录添加到$FINDBUGS_HOME
/binPATH
环境变量中,然后使用findbugs命令调用FindBugs 。
2.2.1。包装脚本命令行选项
该FindBugs的包装脚本支持以下命令行选项。请注意,这些命令行选项不被处理的FindBugs程序本身; 相反,它们是由包装脚本处理的。
指定传递给JVM的参数。例如,你可能想要设置一个JVM属性:
指定包含用于执行FindBugs的JRE(Java运行时环境)的目录。
指定以兆字节为单位的最大Java堆大小。缺省值是256.分析非常大的程序或库可能需要更多的内存。
打印分析到标准输出的一系列检测器运行和类别。对排除意外的分析失败很有用。
-jvmArgs args
$ findbugs -textui -jvmArgs“-Duser.language = ja” myApp.jar
-javahome directory
-maxHeap size
-debug
-属性 name=value
该选项设置系统属性。 FindBugs使用系统属性来配置分析选项。请参见。您可以多次使用此选项以设置多个属性。注意:在大多数Windows版本中,name=value
字符串必须用引号引起来。
3.命令行选项
本节介绍FindBugs支持的命令行选项。这些命令行选项可以直接调用FindBugs或使用包装器脚本时使用。
3.1。常用的命令行选项
这些选项可以与GUI和命令行界面一起使用。
该选项禁用增加精度的分析,但也会增加内存消耗。如果您发现FindBugs内存不足,或者需要很长时间才能完成分析,则可能需要尝试使用此选项。
启用可提高精度并发现更多错误的分析,但这可能需要更多内存并需要更多时间才能完成。
-effort:分钟
-effort:最大
-项目 project
指定要分析的项目。您指定的项目文件应该是使用GUI界面创建的项目文件。它通常将结束在扩展.fb
或.fbp
。
3.2。GUI选项
这些选项仅被图形用户界面接受。
-看:plastic|gtk|native
设置Swing外观。
3.3。文本UI选项
这些选项仅被文本用户界面接受。
按类名排序报告的错误实例。
只报告与指定的过滤器相匹配的错误实例filterFile.xml
。请参阅。
报告除了与指定的过滤器匹配的所有错误实例filterFile.xml
。请参阅。
限制分析以查找给定的逗号分隔的类和包列表。与过滤不同,此选项避免了对未明确匹配的类和包进行运行分析:对于大型项目,这可能会大大减少运行分析所需的时间。(但是,如果某些检测器未在整个应用程序中运行,那么它们可能会产生不准确的结果。)应该使用它们的完整类名称(包括包)来指定类,并且应该使用与在Java import
语句中相同的方式来指定包导入包中的所有类(即添加.*
到包的全名)。更换.*
用.-
也分析所有子包。
报告所有错误。
报告中等和高优先级的错误。这是默认设置。
只报告高优先级的错误。
轻松的报告模式。对于许多检测器,此选项会抑制用于避免报告误报的启发式方法。
以XML格式生成错误报告。生成的XML数据可以在以后的GUI中查看。您也可以将此选项指定为-xml:withMessages ; 当使用此选项的变体时,XML输出将包含描述文件中包含的警告的人类可读消息。以这种方式生成的XML文件很容易转换成报告。
生成HTML输出。默认情况下,FindBugs将使用default.xsl
样式表生成HTML:您可以findbugs.jar
在FindBugs源代码或二进制发行版中找到该文件。此选项的变体包括 -html:plain.xsl,-html:fancy.xsl和-html :fancy-hist.xsl。该plain.xsl
样式表不使用JavaScript或DOM,并可能与工作老版浏览器更好,或打印。该fancy.xsl
样式表使用DOM和JavaScript用于导航和CSS的视觉呈现。在花式hist.xsl的演变fancy.xsl样式表。它广泛使用DOM和Javascript来动态过滤错误列表。
如果您想指定自己的XSLT样式表来执行HTML转换,请将选项指定为 -html:,myStylesheet.xsl
其中myStylesheet.xsl
是要使用的样式表的文件名。
以Emacs格式生成错误报告。
以xdoc XML格式生成错误报告以用于Apache Maven。
在指定的文件中生成输出。
此参数已被弃用。改为使用输出。
此选项启用或禁用扫描要分析的文件和目录列表中找到的嵌套jar和zip文件。默认情况下,启用嵌套的jar / zip文件的扫描。要禁用它,请在命令行参数中添加-nested:false。
设置辅助类路径进行分析。这个类路径应该包含所有的jar文件和目录,这些文件和目录包含属于被分析程序的一部分的类,但你不想分析错误。
从标准输入中读取辅助类路径进行分析,每行添加新条目到辅助类路径进行分析。
从文件中读取辅助类路径进行分析,每行添加新条目到辅助类路径进行分析。
阅读要从文件分析的文件,每行添加新条目到类路径进行分析。
-sortByClass
-包括 filterFile.xml
-排除 filterFile.xml
-onlyAnalyze com.foobar.MyClass,com.foobar.mypkg.*
-低
-中
-高
-轻松
-xml
-html
-emacs
-xdocs
- 输出 filename
-输出文件 filename
-nested[:true|false]
-auxclasspath classpath
-auxclasspathFromInput
-auxclasspathFromFile filepath
-analyzeFromFile filepath
-userPrefs edu.umd.cs.findbugs.core.prefs
设置要使用的用户首选项文件的路径,这可能会覆盖某些选项。指定userPrefs
为第一个参数意味着稍后的某些选项将覆盖它们,因为最后一个参数意味着它们将覆盖以前的某些选项)。此选项背后的基本原理是重用FindBugs Eclipse项目设置以执行命令行。
来源: