如何在同一项目(工作区)上同时运行多个SonarQube分析?

时间:2018-12-28 11:43:00

标签: jenkins sonarqube jenkins-pipeline sonarqube-scan sonarscanner

我正在运行Jenkins管道,提交合并请求时将触发构建。运行构建,SonarQube分析工作空间。请求的另一个合并同时提交,并且构建运行,但是SonarQube失败并出现以下错误:

ERROR: Error during SonarQube Scanner execution ERROR: Another SonarQube analysis is already in progress for this project

如何为同一项目同时运行多个SonarQube分析?

1 个答案:

答案 0 :(得分:0)

从Jenkins角度来看,解决方案是为每个签出在工作区中使用不同的仓库,这样您就不会两次遇到相同的锁定项目。您可以通过多种方式执行此操作,这仅取决于您希望同时执行多少个并发构建。

假设您使用的是Git,则可以在checkout命令的扩展部分中添加此代码,以使每个构建都根据其构建号在其自己的目录中并在一个工作空间目录(即管道目录)下被签出)。

  

[$ class:'RelativeTargetDirectory',relativeTargetDir:“ $ {BUILD_NUMBER}”]]

您有两种清理方法,要么使用checkout命令中的“清空存储库并强制克隆”,要么使用Workspace Cleanup插件。

请记住,checkout擦除命令将删除您要进行下一次检出的目录下的所有内容,这意味着它将保持您其余工作区的完整性,并且如果您使用内部版本号(如上面的例子。这是您需要添加到扩展部分的内容:

  

[$ class:'WipeWorkspace']

cleanWS插件为您提供了更大的灵活性,因为您可以为要包括的内容指定模式,或者在更改类型时排除:

  

cleanWs(patterns [[[pattern:'',type:'INCLUDE']])

我希望这会有所帮助。