如何在没有Maven和Docker的Jenkins声明管道中执行SonarQube扫描程序

时间:2018-02-01 08:00:23

标签: jenkins sonarqube sonarqube-scan jenkins-blueocean

SonarQube扫描程序是否支持没有maven和docker的BlueOcean管道插件,如果它确实如何在Jenkinsfile中运行脚本?

我是Jenkins和BlueOcean的新手,并尝试过所有可能的基本方面。

如果SonarQube插件支持Declarative:

pipeline {
  agent any
  stages {
    stage('SonarQube analysis') {
      tools {
        sonarQube 'SonarQube Scanner 2.8'
      }
      steps {
        withSonarQubeEnv('SonarQube Scanner') {
          sh 'sonar-scanner'
        }
      }
    }
  }
}

2 个答案:

答案 0 :(得分:3)

我们不能说SonarQube扫描仪支持或不支持BlueOcean。 BlueOcean是一个表示层,显示由阶段提供的数据(例如:日志)。

SonarQube扫描仪生成日志,因此BlueOcean可以显示它。我不认为这种关系可以被归类为"支持"。

编辑:

您可以使用以下代码在Declarative Pipeline中执行分析:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                def scannerHome = tool 'SonarQubeScanner3'
                withSonarQubeEnv('SonarQube') {
                    sh "${scannerHome}/bin/sonar-scanner"
                }
            }
        }
    }
}

您还在Manage Jenkins → Configure System → SonarQube servers中添加了SonarQube服务器:

SonarQube servers

Manage Jenkins → Global Tool Configuration → SonarQube Scanner中的SonarQube扫描程序:

SonarQube scanner

名称:

  • 服务器必须与withSonarQubeEnv中使用的相同(在我的示例中,它等于" SonarQube")
  • 扫描仪工具必须与tool中使用的相同(在我的示例中,它等于" SonarQubeScanner3")

您还必须选中复选框Enable injection of SonarQube server configuration as build environment variables

答案 1 :(得分:1)

解决了一个只需要检查一般工具配置中的工具位置并给出路径adn在jenkins文件中调用它。

 stage('PDNS-UI-Sonar') { 
         environment {
             SONAR_SCANNER_OPTS = "-Xmx2g"
             } 
         steps {
             sh "pwd"
             sh "/opt/sonar-scanner/bin/sonar-scanner -Dproject.settings=sonar-project.properties"
             }
         }

enter image description here