将 Jenkins 连接到 SonarQube 的问题

Posted

技术标签:

【中文标题】将 Jenkins 连接到 SonarQube 的问题【英文标题】:Problem with Connecting Jenkins to SonarQube 【发布时间】:2020-02-25 19:08:27 【问题描述】:

我有一个 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"
        
    

但这失败了,下面的日志和ERROR: script returned exit code 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 时,sonnar 插件不存在:

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

谁能告诉我如何将 Jenkins 连接到 sonarqube?

【问题讨论】:

【参考方案1】:

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

sh """
   $scannerHome/bin/sonar-scanner \
   -Dsonar.projectKey=your_project_key_created_in_sonarqube_as_project \
   -Dsonar.sources=. \
"""

【讨论】:

以上是关于将 Jenkins 连接到 SonarQube 的问题的主要内容,如果未能解决你的问题,请参考以下文章

代理商背后的Jenkins SonarQube扫描仪

无法使用 Postgresql 将 JDBC 连接到 sonarqube

是否可以将 Azure 管道连接到本地服务器?

SonarQube 无法使用 REST API 连接到 JIRA 7

SonarQube - 无法连接到没有代理的更新中心

连接到 PostgresQL 时,Sonarqube 不会加载其页面而没有任何错误消息