webentwicklung-frage-antwort-db.com.de

Führen Sie den SonarQube-Scanner in der Jenkins 2-Pipeline aus

Ich möchte einen "SonarQube Scanner" -Schritt in meiner Jenkins 2.x-Pipeline ausführen.

Wenn ich versuche, ein Groovy-Beispiel innerhalb der Pipeline-Syntax zu erstellen, erhalte ich nur ein Groovy-Skript des folgenden Formats:

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

Weiß jemand, was die korrekte Schrittsyntax ist? Z.B. JUnit-Bericht veröffentlichen sieht so aus

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

Ich benutze folgende Versionen:

  • Jenkins 2.11
  • SonarQube Scanner 2.6.1
  • SonarQube Plugin 2.4.1
4

Ich denke ich habe es. Zuerst müssen Sie Ihr SonarQube Scanner Tool abrufen

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

Dann können Sie den Sonarscanner über Shell aufrufen:

sh "${sonarqubeScannerHome}/bin/sonar-scanner -e -Dsonar.Host.url=..."
8
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=."

}
4

Sie können stattdessen einfach den vollständigen Pfad zu Ihrem Sonar-Runner angeben. Wie im folgenden Ausschnitt gezeigt.

def runSonarScan(sonar_url){
    withEnv(['SONAR_Host=' + sonar_url]) {
        sh '''
        $/opt/sonarqube/sonar-runner-2.4/bin/sonar-runner -e -Dsonar.Host.url=${SONAR_Host}
        '''
    }
}

Wenn Sie über bestimmte Sonareigenschaften verfügen, fügen Sie diese wie hier gezeigt als sonar-project.properties-Datei hinzu. Sonar-Projekteigenschaften

1
user3265317