Checkstyle和Findbugs仅用于Jenkins(和/或Hudson)上的已更改文件

时间:2011-08-30 12:33:07

标签: hudson jenkins findbugs checkstyle

我们使用大量遗留代码,并考虑为新代码引入一些指标。是否可以让Findbugs和Checkstyle仅运行已更改的文件而不是完整的项目?

确保只检查质量最低的文件会很好,但代码库本身(尚未)触及并评估不会使人们因成千上万的问题而混淆。

2 个答案:

答案 0 :(得分:3)

从理论上讲,这是可能的。您将使用shell脚本在给定的开始日期之后解析SVN(或任何SCM)更改日志,从这些更改集中标识.java文件并从中构建两个模式:

  • Findbugs Maven Plugin需要以逗号分隔的类列表(或 包)参数onlyAnalyze的名称,所以你有 将文件名转换为完全限定的类名(这将得到 当你处理内部类时很棘手)
  • Maven Checkstyle Plugin更糟糕,它预计会有 其packageNamesLocation参数的配置文件。 不幸的是,只允许包,而不是单个文件。所以 你必须将文件名翻译成包。

在上面的例子中,我假设你正在使用maven。我很确定蚂蚁可以做类似的事情,但我不知道。

我自己可能会使用Groovy脚本而不是shell脚本来实现上述结果。

答案 1 :(得分:2)

Findbugs有一些ant任务可以针对不同的findbugs结果做差异,只看到增量,所以只报告新的bug,参见

http://findbugs.sourceforge.net/manual/datamining.html