将 Jenkins 连接到 SonarQube 时出现问题

问题描述 投票:0回答:1

我有一个 Jenkins 管道,它定期从 gitlab 拉取并构建不同的存储库,构建一个多组件平台,运行和测试它。现在我在同一台机器(Ubuntu 18.04)上安装了一个 sonarqube 服务器,并且我想将我的 Jenkins 连接到 sonarqube。

在詹金斯中:

我在

Global Tool Configuration
设置了声纳扫描仪,如下所示:

我在sonarqube和Jenkins中生成了一个令牌,

configuration
我设置了服务器,如下所示,但我找不到任何地方可以插入令牌(我认为这就是问题所在):

在 Jenkins 管道中,这就是我为 sonarqube 添加阶段的方式:

stage('SonarQube analysis') {
    steps{
        script {
            scannerHome = tool 'SonarQube';
        }
        withSonarQubeEnv('SonarQube') {
            sh "${scannerHome}/bin/sonar-scanner"
        }
    }
}

但是这失败了,日志如下并且

错误:脚本返回退出代码 127

[Pipeline] { (SonarQube analysis)
[Pipeline] script
[Pipeline] {
[Pipeline] tool
Invalid tool ID 
[Pipeline] }
[Pipeline] // script
[Pipeline] withSonarQubeEnv
Injecting SonarQube environment variables using the configuration: SonarQube
[Pipeline] {
[Pipeline] sh
+ /var/lib/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube/bin/sonar-scanner
/var/lib/jenkins/workspace/wws-full-test@tmp/durable-2c68acd1/script.sh: 1: /var/lib/jenkins/workspace/wws-full-test@tmp/durable-2c68acd1/script.sh: /var/lib/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube/bin/sonar-scanner: not found
[Pipeline] }
WARN: Unable to locate 'report-task.txt' in the workspace. Did the SonarScanner succeeded?
[Pipeline] // withSonarQubeEnv
[Pipeline] }
[Pipeline] // stage

当我检查磁盘上的 jenkinstools 时,声纳插件不存在:

$ ls /var/lib/jenkins/tools/
jenkins.plugins.nodejs.tools.NodeJSInstallation

有人可以告诉我如何将 Jenkins 连接到 sonarqube 吗?

jenkins sonarqube jenkins-pipeline jenkins-plugins sonarqube-scan
1个回答
3
投票

创建并添加令牌以便能够连接到 SonarQube。
您已在 SonarQube 中创建项目并将其用作参数:

sh """
   ${scannerHome}/bin/sonar-scanner \
   -Dsonar.projectKey=your_project_key_created_in_sonarqube_as_project \
   -Dsonar.sources=. \
"""
© www.soinside.com 2019 - 2024. All rights reserved.