有没有办法在jenkins中设置findbugs(或任何其他静态代码分析工具)来分析传入的pull请求并将结果与主分支进行比较?我的目标是拒绝增加静态代码分析问题数量的请求。
最佳答案
您可以通过使用maven插件checkstyle、findbugs和pmd(-cpd)来实现您的想法。
每个插件都有一个“:check”-mojo,这可能导致构建失败-基于零或配置的规则冲突。
checkstyle check-mojo
findbugs check-mojo
pmd check-mojo
pmd-cpd check-mojo
这个mojo被绑定到maven-“verify”阶段,因此mvn verify将执行任务-或者您直接在jenkins构建中执行mojo(作业配置“build”->“goals and options”->mvn verfiy,或者mvn test checkstyle:check)。
插件有不同的配置失败的方法。
例如,checkstyle插件具有maxAllowedViolations-配置参数。因此,可以将此参数设置为当前冲突计数,并使用mvn verfiy或mvn checkstyle:check在发生新的冲突时让生成失败。当然,每次修复checkstyle冲突时都必须增加此参数。
在fingbugs插件中,在使用mvn findbugs:check之前,您的构建必须没有冲突。