【发布时间】:2014-02-14 10:32:22
【问题描述】:
FindBugs 发现的所有错误都被赋予一个错误等级,但错误等级不会出现在 FindBugs 的 XML 报告输出中。
来自 FindBugs 文档:
Bug Rank - Bug 被赋予 1-20 的等级,并分为 scariest(等级 1-4)、可怕(等级 5-9)、 麻烦(排名 10-14)和关注(排名 15-20)。
优先级重命名为信心 - 许多人对 FindBugs 报告的优先级感到困惑,并认为所有高优先级问题都很重要。为了反映问题的这个属性的实际含义,它被重新命名为信心。不同 bug 模式的问题应该通过它们的等级来比较,而不是它们的置信度。
我已经通过 GUI 和 ant 任务运行 Findbugs(Windows 上的 v2.0.3)
<findbugs home="${findbugs.home}" output="xml"
outputFile="${report.dir}/findbugs/findbugs-report.xml" jvmargs="-Xmx512M">
<auxClasspath>
<fileset dir="${lib.dir}/dist" includes="*.jar"/>
</auxClasspath>
<sourcePath path="${src.dir}"/>
<class location="${dist.dir}/mylibrary.jar"/>
</findbugs>
在 GUI 中,我通过“文件 → 另存为 → FindBugs 分析结果 (*xml)”输出 XML。
在这两种情况下,具有相同 Findbugs 错误实例的 XML 输出都很好。
但是,在这两种情况下,<BugInstance> 元素都不包含rank 属性的值。例如我他们是这样的:
<BugInstance type="DM_DEFAULT_ENCODING" priority="1" abbrev="Dm" category="I18N">
...
</BugInstance>
有谁知道
<BugInstance>元素是否应该包含rank属性的值?如果他们应该这样做,有谁知道如何从 GUI 或 ant 任务中获取 XML 中的排名?
我查看了 Findbugs 安装文件夹中的 bugcollection.xsd 文件,其中列出了
<xs:attribute name="rank" type="xs:unsignedInt" use="optional"/>
暗示该排名可能出现在 XML 报告中。
我在 Google 上搜索过相关主题,大多数页面都提到了过滤器,但我不想过滤错误实例,只是输出所有错误实例及其排名值 - 除非我不明白什么过滤器可以。
非常感谢您的建议。
【问题讨论】:
-
好问题。错误等级应该在那里,因为您可以在 Eclipse 中看到它。