在使用 docker 容器 Sonnar 扫描仪的同时使用来自 Jenkins 管道的 SonarQube 分析代码
Analyzing code with SonarQube from Jenkins pipeline while using docker container Sonnar Scanner
我想对 git 存储库代码执行 SonarQube 分析,我想使用 Docker 容器中的 SonarScanner,而不是 Jenkins 配置中的 SonarScanner。
我已尝试创建此管道:
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 分析构建失败,构建输出:
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
我会尝试删除参数之间的双反斜杠:
sh 'sonar-scanner -Dsonar.projectKey=myProject -Dsonar.sources=./src'
不会被 shell 截断并添加到参数名称中的反斜杠转义空格。
我想对 git 存储库代码执行 SonarQube 分析,我想使用 Docker 容器中的 SonarScanner,而不是 Jenkins 配置中的 SonarScanner。
我已尝试创建此管道:
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 分析构建失败,构建输出:
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
我会尝试删除参数之间的双反斜杠:
sh 'sonar-scanner -Dsonar.projectKey=myProject -Dsonar.sources=./src'
不会被 shell 截断并添加到参数名称中的反斜杠转义空格。