首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法让Sonarqube在Jenkins声明管道中运行

无法让Sonarqube在Jenkins声明管道中运行
EN

Stack Overflow用户
提问于 2018-05-29 08:58:24
回答 1查看 1.3K关注 0票数 2

我跟踪了可用的文档:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins

但是,我不能让它起作用。首先,似乎需要更新文档,因为示例中的语法是错误的。在最新版本的声明性管道中,stepsstage-tag中是强制性的。此外,只有在def-keyword位于script-tag中时,才能解析它。

除此之外,在运行以下Jenkinsfile时,我收到了一个NPE:

代码语言:javascript
复制
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

代码语言:javascript
复制
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"
        }
      }
    }
  • Jenkins: v2.107.3
  • 詹金斯插件的SonarQube扫描仪:v2.7.1
  • SonarQube扫描仪: 3.2.0.1227 (设置为在Global中自动安装)
  • 在主服务器上运行作业(Windows 2012 R2)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-30 15:01:35

修正如下:

代码语言:javascript
复制
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"
            }
         }
      }
    }
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50580260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档