配套的Bug解释模式
为了有针对性的使用这个工具,减少bug的误报,提高使用效率,我们选择了10个左右的bug模式,下面就是对这10个模式的解释。
这些bug可能会引起程序的性能或逻辑问题.
需要说明的是,findbugs能检测的bug pattern远不仅于此,甚至可以定制自己的探测器,因此,这个文档会不断扩充,同时,也欢迎大家不断探索和分享使用实践.
大的分类主要包括以下几种:
Bad practice |
不好的习惯 |
Correctness |
代码的正确性 |
Dodgy |
小问题 |
Malicious code vulnerability |
恶意代码 |
Internationalization |
国际化问题 |
Performance |
性能问题 |
Security |
安全性问题 |
Multithreaded currectness |
线程问题 |
Experrimental |
实验性问题 |
findbugs option
class
嵌套元素指定要分析的类。这个元素必须指定一个location属性,location属性的名字为archive文件(jar,zip等)、目录或者class文件。可以为一个findbugs元素指定多个class元素。
auxClasspath
可选的嵌套元素,用于指定要分析的类所引用的类,但是并不对引用的类进行分析。
sourcePath
可选的嵌套元素,指定Java源代码的目录。
home
必须的属性,findbugs的安装目录。
quietErrors
可选的布尔型属性。如果是true的话,报告严重的分析错误和丢失的类。默认情况下为false。
reportLevel
可选的属性。指定优先级别。如果是low的话,那么报告所有的bug,如果是medium(缺省值),报告medium和high优先级的bug。
output
可选属性,设置输出格式。
stylesheet
可选属性,指定生成html时使用的样式表。
sort
可选属性,如果输出属性设置为text,该属性指定是否对输出结果根据class进行排序,默认为true。
outputFile
可选属性,指定输出文件。
debug
可选的布尔型属性,是否打印分析过程中的日志。默认值为false。
effort
设置分析工作的等级,可以为min、default和max。
conserveSpace
和min effort一样的功能。
workHard
和max effort一样的功能。
visitors
可选属性,指定逗号分隔的列表,指定要运行的detectors。
omitVisitors
可选属性,忽略detectors。折合visitors属性类似,只是不指定不运行哪些detectors。
excludeFilter
可选属性,指定排除的Filter。
includeFilter
可选属性,指定包含的Filter。
projectFile
可选属性,指定项目的名称。
jvmargs
可选属性,指定JVM变量。
systemProperty
系统属性。
timeout
可选属性,指定超市的时间,默认为600,000毫秒,即10分钟。
failOnError
可选属性,指定是否在运行FindBugs出现异常时停止构建过程,默认为false。
errorProperty
可选属性,如果在运行FindBugs时发生错误,指定属性的值为true。
warningsProperty
可选属性,如果在运行FindBugs时发生警告,指定属性的值为true。