【问题标题】:How to run SonarQube for Go code using Jenkins如何使用 Jenkins 为 Go 代码运行 SonarQube
【发布时间】:2020-12-29 02:33:14
【问题描述】:

我需要使用 Jenkins 为 Go 代码运行 SonarQube。不幸的是,关于这项任务的信息很少。

我发现应该创建“sonar-project.properties”文件,例如:

  sonar.projectKey=com.company.projectkey1
  sonar.projectName=My Project Name

  sonar.sources=.
  sonar.exclusions=**/*_test.go,**/vendor/**

  sonar.tests=.
  sonar.test.inclusions=**/*_test.go
  sonar.test.exclusions=**/vendor/**

但是如何正确配置 Jenkins 流水线?我找到了以下示例,但我不确定这是否是我需要的

node {
  stage('SCM') {
    git '<my_path>.git'
  }
  stage('SonarQube analysis') {
    def scannerHome = tool 'SonarScanner 4.0';
    withSonarQubeEnv('My SonarQube Server') { 
      sh "${scannerHome}/bin/sonar-scanner"
    }
  }
}

【问题讨论】:

    标签: go jenkins sonarqube sonarqube-scan


    【解决方案1】:

    是的,没错。

    在您的 Jenkins 管道中,您只需要运行 sonnar-scanner - 这与其他语言没有什么不同(请参阅 https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/)。 Go 语言插件随 SonarQube 一起提供,因此无需安装任何东西。然后,Scanner 将从您的项目根目录中的 sonar-project.properties 获取项目配置并执行分析。

    您的 sonar-project.properties 文件似乎是从 SonarQube for Go 页面复制的示例 - 您可能需要根据项目布局进行一些调整(例如添加 sonar.inclusions=**/.*go)。 SonarQube 应该会自动检测文件是否在 Go 中,但您也可以在该文件中添加 sonar.language=go 以强制它。

    您没有提及您是在本地运行 SonarQube 还是在集群模式下运行 - 但应该几乎没有区别(在集群安装的情况下,可能会添加服务器 url 并登录到 sonar-project.properties)。

    请注意,go 需要安装在扫描仪机器上。

    【讨论】:

      猜你喜欢
      • 2016-04-10
      • 2021-12-13
      • 2016-02-20
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多