尝试构建管道时 SonarQube 错误 ECONNREFUSED

Posted

技术标签:

【中文标题】尝试构建管道时 SonarQube 错误 ECONNREFUSED【英文标题】:SonarQube Error ECONNREFUSED when trying to build pipeline 【发布时间】:2021-02-09 11:04:08 【问题描述】:

错误信息:

2020-10-27T07:09:07.2165374Z ##[section]开始:准备分析 SonarQube 2020-10-27T07:09:07.2173598Z ==================================================== ============================= 2020-10-27T07:09:07.2173933Z 任务:准备分析 配置 2020-10-27T07:09:07.2174239Z 描述:准备 SonarQube 分析配置 2020-10-27T07:09:07.2174492Z 版本 : 4.11.0 2020-10-27T07:09:07.2174726Z 作者: sonarsource 2020-10-27T07:09:07.2175119Z 帮助:版本:4.11.0。 More Information 2020-10-27T07:09:07.2175552Z ==================================================== ============================= 2020-10-27T07:09:11.0792396Z ##[错误][SQ] API GET '/api/server/version' 失败,错误是: "code":"ECONNREFUSED","errno":"ECONNREFUSED","syscall":"connect","address":"127.0.0.1","port":9000 2020-10-27T07:09:11.1210822Z ##[section]Finishing: 准备分析 SonarQube

它在我的 sonarqube 上运行并通过声纳扫描仪进行分析,但是当我尝试运行管道时,我不断收到此错误。

【问题讨论】:

【参考方案1】:

您需要确保可以从 devops 管道代理访问您的 sonarqube 服务器。如果您的 sonarqube 服务器托管在本地服务器上,您必须创建一个 self-hosted agent 并在此自托管代理上运行您的管道。这是因为云代理无法访问本地声纳服务器。

您可以检查以下步骤,使用 devops 管道为您的项目配置声纳云分析。

1,并在您的 azure devops 项目上设置 sonarqube service connection。

项目设置-->服务连接(在 Pipelines 下)--> 新服务连接--> 选择 Sonarqube。请参考here 获取声纳安全令牌

2,将 Sonarqube 扩展安装到您的 azure devops 组织。并将以下三个声纳任务添加到管道的末尾(在构建任务之后)。对于以下 yaml 管道中的示例。

- task: SonarQubePrepare@4
  inputs:
    SonarQube: sonarqubeConnectionName
    scannerMode: CLI
    configFile: sonar-project.properties

- task: SonarQubeAnalyze@4

- task: SonarQubePublish@4

3,在项目的根目录中创建一个具有以下属性的sonar-project.properties 文件。或将以下属性添加到 SonarQubePrepare 任务的 additional Properties(extraProperties) 字段。点击here了解更多信息

sonar.projectKey=projectKey
sonar.projectName=projectName
sonar.projectVersion=1.0
sonar.sources=mainsourcefilesfolder #eg. dist
sonar.sourceEncoding=UTF-8
sonar.tests=testcodesourcefolder

注意:SonarQube 仅在 master 分支上工作。请针对主分支运行您的管道。更多信息请查看this thread。

【讨论】:

以上是关于尝试构建管道时 SonarQube 错误 ECONNREFUSED的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins 管道错误:java.lang.NoSuchMethodError:找不到这样的 DSL 方法“withSonarQubeEnv”

如何在构建docker镜像时执行SonarQube扫描.NET Core应用

##[错误]错误:超出 GC 开销限制 - TFS 构建中的 SonarQube

Azure DevOps 中项目的 Sonarqube 扫描问题

将 sonarqube 与 azure 集成时出现 ETIMEOUT 错误

Docker 容器中的 TypeScript SonarQube 扫描