我跟踪了可用的文档:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins
但是,我不能让它起作用。首先,似乎需要更新文档,因为示例中的语法是错误的。在最新版本的声明性管道中,steps在stage-tag中是强制性的。此外,只有在def-keyword位于script-tag中时,才能解析它。
除此之外,在运行以下Jenkinsfile时,我收到了一个NPE:
java.lang.NullPointerException
at org.jenkinsci.plugins.workflow.steps.ToolStep$Execution.run(ToolStep.java:150)
at org.jenkinsci.plugins.workflow.steps.ToolStep$Execution.run(ToolStep.java:133)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:49)
at hudson.security.ACL.impersonate(ACL.java:290)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:46)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)Jenkinsfile
pipeline {
environment {
scannerHome = tool 'SonarQube Scanner 3.2.0.1227'
}
agent {
node {
label "master"
}
}
options {
buildDiscarder logRotator(daysToKeepStr: '7')
}
stages {
stage("Sonarqube analysis") {
steps {
withSonarQubeEnv('SonarQube Scanner') {
bat "${scannerHome}/bin/sonar-scanner"
}
}
}发布于 2018-05-30 15:01:35
修正如下:
pipeline {
agent {
node {
label "master"
}
}
stages {
stage("SonarQube analysis") {
steps {
script {
def sonarScanner = tool name: 'SonarQube', type: 'hudson.plugins.sonar.SonarRunnerInstallation'
bat "${sonarScanner}/bin/sonar-scanner -e -Dsonar.host.url=xxx"
}
}
}
}
}https://stackoverflow.com/questions/50580260
复制相似问题