2

如果我违反特定规则的次数超过 3000 次,是否有办法让 pmd 报告失败。我希望 CyclomaticComplexity 低于 1000 次违规,而 ExcessivePublicCount 低于 2000。我知道有一种方法可以获得违规次数,但我不想要总数,因为如果我将 CC 的数量减少到 800,并增加EPC 的数量增加到 2200,它会看起来好像没有发生任何变化。如果不创建 2 个规则集,每个文件一个,然后使用不同的 pmd 目标运行,有没有更好的方法来做到这一点。

有没有办法 pmd 可以给我每种类型的违规次数(IE:500 - CC 和 200 - EPC),而不仅仅是所有违规的列表?谢谢。

4

1 回答 1

0

一个想法 - 您可以让 PMD 以 XML 格式输出结果。然后,您可以编写一个 XPath 表达式来对这些计数的输出进行后处理。

在纯 PMD 中,我认为您可以编写一个规则来包装/扩展他们的规则并跟踪静态变量中的违规行为。如果您跨多个 CPU 内核运行,这将不起作用,所以我不会走这条路。另一个限制是你不知道有多少失败。您可能会因第 2001 个错误而失败,但不会因最后一个错误而失败。

于 2011-04-22T00:31:00.913 回答