我们处理了大量遗留代码,并考虑为新代码引入一些指标。是否可以让 Findbugs 和 Checkstyle 仅在更改的文件上运行而不是在完整的项目上运行?
最好确保只 checkin 质量最低的文件,但代码库本身(尚未)被触及和评估,以免被成千上万的问题混淆。
最佳答案
从理论上讲,这是可能的。您将使用 shell 脚本在给定的开始日期之后解析 SVN(或任何 SCM)更改日志,从这些更改集中识别 .java 文件并从中构建两种模式:
包)参数名称
onlyAnalyze
,所以你会有将文件名转换为完全限定的类名(这将得到
处理内部类时很棘手)
其配置文件
packageNamesLocation
范围。不幸的是,只允许包,而不是单个文件。所以
您必须将文件名转换为包。
在上面的示例中,我假设您使用的是 maven。我很确定用 ant 可以做类似的事情,但我不知道。
我自己可能会使用 Groovy 脚本而不是 shell 脚本来实现上述结果。
关于hudson - Checkstyle 和 Findbugs 仅在 Jenkins(和/或 Hudson)上更改文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243190/