Анализ кода с помощью SonarQube из конвейера Jenkins при использовании док-контейнера Sonnar Scanner - PullRequest
0 голосов
/ 02 июля 2019

Я хочу выполнить SonarQube для анализа кода репозитория git и хочу использовать SonarScanner из Docker Container, а не из конфигурации Jenkins.

Я пытался создать этот конвейер:

pipeline {
    agent { docker { image 'emeraldsquad/sonar-scanner:latest' } }
    stages {
        stage('build && SonarQube analysis') {
            steps {
                withSonarQubeEnv('sonar.tools.devops.****') {
                    sh 'sonar-scanner \\ -Dsonar.projectKey=myProject \\ -Dsonar.sources=./src \\'
                }
            }
        }
        stage("Quality Gate") {
            steps {
                timeout(time: 1, unit: 'HOURS') {
                    // Parameter indicates whether to set pipeline to UNSTABLE if Quality Gate fails
                    // true = set pipeline to UNSTABLE, false = don't
                    // Requires SonarScanner for Jenkins 2.7+
                    waitForQualityGate abortPipeline: true
                }
            }
        }
    }
}

Сборка завершается неудачно на этапе сборки && SonarQube analysis с выводом сборки:

Injecting SonarQube environment variables using the configuration: sonar.tools.devops.*****
[Pipeline] {
[Pipeline] sh
+ sonar-scanner ' -Dsonar.projectKey=myProject' ' -Dsonar.sources=./src' '\'
ERROR: Unrecognized option:  -Dsonar.sources=./src
INFO: 
INFO: usage: sonar-scanner [options]
INFO: 
INFO: Options:
INFO:  -D,--define <arg>     Define property
INFO:  -h,--help             Display help information
INFO:  -v,--version          Display version information
INFO:  -X,--debug            Produce execution debug output

1 Ответ

0 голосов
/ 02 июля 2019

Я бы попытался удалить двойную обратную косую черту между аргументами: sh 'sonar-scanner -Dsonar.projectKey=myProject -Dsonar.sources=./src'

Обратная косая черта экранирует пробелы, которые не будут затронуты оболочкой и добавлены к имени аргумента.

...