分析属性
登录后可跨设备保存划线和私人笔记登录
SpotBugs 允许对其执行的各项分析的多个方面进行自定义。这些选项通过系统属性进行配置。本章介绍可配置的分析选项。
分析选项有两个主要目的。首先,它们允许你向 SpotBugs 说明应用程序中各方法的含义,从而使其能够产生更准确的结果,或减少误报。其次,它们允许你配置所执行分析的精度。降低分析精度可以节省内存和分析时间,但代价是可能遗漏一些真实缺陷,或产生更多误报。
分析选项使用 -property 命令行选项进行设置。例如:
$ spotbugs -textui -property "cfg.noprune=true" myApp.jar可配置的分析属性列表如下表所示:
| 属性名称 | 值 | 含义 |
|---|---|---|
| findbugs.assertionmethods | 以逗号分隔的完全限定方法名列表,例如:“com.foo.MyClass.checkAssertion” | 此属性指定用于检查程序断言的方法名称。指定这些方法可使空指针解引用缺陷检测器避免对已被断言方法检查过的值报告误报。 |
| findbugs.de.comment | true 或 false | 若为 true,DroppedException 检测器会在源代码中的空 catch 块里查找注释,如果找到则不报告警告。 |
| findbugs.maskedfields.locals | true 或 false | 若为 true,则为遮蔽字段的局部变量发出低优先级警告。默认值为 false。 |
| findbugs.nullderef.assumensp | true 或 false | 未使用(其意图是:若为 true,空指针解引用检测器将假定从方法返回的任何引用值,或通过参数传递给方法的引用值,都可能为 null。默认值为 false。请注意,启用此属性极有可能导致产生大量误报。) |
| findbugs.refcomp.reportAll | true 或 false | 若为 true,则报告所有使用 == 和 != 运算符的可疑引用比较;若为 false,则每个方法只发出一次此类警告;默认值为 false。 |
| findbugs.sf.comment | true 或 false | 若为 true,SwitchFallthrough 检测器将仅在源代码中没有包含 “fall” 或 “nobreak” 字样的注释时才报告警告。(此功能需要使用准确的源代码路径才能正常工作。)这有助于发现 switch 贯穿(fallthrough)很可能是无意为之的情况。 |
评论
登录后参与评论
正在加载评论…
KnowForge