在Jenkins 2 Pipeline中执行SonarQube扫描仪

时间:2016-06-30 13:11:18

标签: jenkins groovy jenkins-pipeline sonarqube-scan

我想执行一个" SonarQube扫描仪"我的Jenkins 2.x管道中的步骤。

当我尝试在管道语法中创建一个样本groovy时,我只得到一个格式如下的groovy脚本:

step <object of type hudson.plugins.sonar.SonarRunnerBuilder>

有谁知道什么是正确的步骤语法?例如。发布JUnit报告看起来像

step([$class: 'JUnitResultArchiver', testResults: ''])

我使用以下版本:

  • Jenkins 2.11
  • SonarQube Scanner 2.6.1
  • SonarQube插件2.4.1

2 个答案:

答案 0 :(得分:8)

我想我明白了。 首先,您必须检索SonarQube扫描仪工具

def sonarqubeScannerHome = tool name: 'SonarQubeScanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation'

然后你可以通过Shell调用声纳扫描仪:

sh "${sonarqubeScannerHome}/bin/sonar-scanner -e -Dsonar.host.url=..."

答案 1 :(得分:4)

env.sonarHome= tool name: 'scanner-2.4', type: 'hudson.plugins.sonar.SonarRunnerInstallation'

withSonarQubeEnv('sonar.installation') { // from SonarQube servers > name
  sh "${sonarHome}/bin/sonar-runner -Dsonar.host.url=${SONAR_HOST_URL}  -Dsonar.login=${SONAR_AUTH_TOKEN}    -Dsonar.projectName=xxx -Dsonar.projectVersion=xxx -Dsonar.projectKey=xxx -Dsonar.sources=."

}