仅在Jenkins(和/或Hudson)上检查更改文件的样式和Findbugs

仅在Jenkins(和/或Hudson)上检查更改文件的样式和Findbugs,hudson,jenkins,findbugs,checkstyle,Hudson,Jenkins,Findbugs,Checkstyle,我们处理大量遗留代码,并考虑为新代码引入一些度量标准。是否可以让Findbugs和Checkstyle只在更改的文件上运行,而不是在一个完整的项目上运行 最好确保只签入质量最低的文件,但代码库本身(尚未)被触及和评估,以避免因成千上万的问题而混淆人们。理论上,这是可能的。您可以使用shell脚本在给定的开始日期之后解析SVN(或任何SCM)更改日志,从这些更改集中识别.java文件,并从中构建两个模式: 需要以逗号分隔的类列表(或 包)参数的名称,因此 将文件名转换为完全限定的类名(这将得到

我们处理大量遗留代码,并考虑为新代码引入一些度量标准。是否可以让Findbugs和Checkstyle只在更改的文件上运行,而不是在一个完整的项目上运行


最好确保只签入质量最低的文件,但代码库本身(尚未)被触及和评估,以避免因成千上万的问题而混淆人们。

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

  • 需要以逗号分隔的类列表(或 包)参数的名称,因此 将文件名转换为完全限定的类名(这将得到 处理内部类时需要技巧)
  • 更糟糕的是,它预计会出现 其参数的配置文件。 不幸的是,只允许包,不允许单个文件。所以 您必须将文件名转换为包
在上面的例子中,我假设您使用的是maven。我很确定蚂蚁也可以做类似的事情,但我不知道


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

Findbugs有一些ant任务,它们可以对不同的Findbugs结果进行区分,只查看增量,因此只报告新的bug,请参阅


我将使用詹金斯、马文和吉特。编写太多脚本并不是真正的首选。是否已经有插件、选项或其他可用的东西?我们不能成为第一批只想检查新文件的人。@Rick Rainer当您有不寻常的需求时,通常必须自己实现它们。对不起,我想这会很不寻常…:-(无论如何,谢谢你的提示。也许有人有现成的解决方案!?事实上,这是一个很好的功能。你可以通过这种方式检查新引入的bug。这有点帮助。我想,你也可以以某种方式将此功能引入Maven。我会检查它。谢谢你的提示!