1. 环境
当前使用 rhel6, jdk1.6.0_24, findbugs进行测试
2. 软件存放位置
Java: /usr/local/java
Findbugs2: /testserver/findbugs2
检测软件: /testserver/AllCulture
3. Findbugs说明
findbugs 提供命令行参数进行代码检测,下面是常见参数说明
-home 定义findbugs2软件存放位置
-low 提交警告及任何级别以上报告
-medium 提交中,高级报告(默认)
-high 只提交高级警告
-xml 警告以 xml输出
-html 警告以 html输出
-output 定义输出的文件名
-onlyAnalyze 只分析指定的 class/package
-exclude 忽略指定的 class/package (必修以 xml定义过滤的命名)
-include 只输出指定的 class/package (必修以xml定义过滤的命名)
4. 过滤方法
根据官方文档提示,下面有一些过滤例子,注,需要把过滤名称定义到独立的 xml中
<Match>
<Class name=”com.foobar.A”/>
<Bug code=”IC,UrF,SIC”/>
</Match>
<Match>
<Bug category=”PERFORMANCE”/>
</Match>
<Match>
<Package name=”~com\.foobar\.fooproject\.ui.*”/>
</Match>
5. 执行过程
a. 根据需要创建过滤 xml
<FindBugsFilter>
<Match>
<Classname=”~android.*” />
</Match>
<Match>
<Bugcode=”Nm” />
</Match>
</FindBugsFilter>
上述过滤信息代表,过滤所有 android开头的包,并且忽略所有大小写错误信息。
b. 执行检测并过滤关键字信息
findbugs2 -html -exclude myfilter.xml -output output_filter.html/testserver/AllCulture/
得到 output_filter.html为报告信息。