如何使用 Jenkins 运行 SonarQube for Go 代码

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

我需要使用 Jenkins 运行 SonarQube for Go 代码。不幸的是,有关此任务的信息很少。

我发现应该创建“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个回答
2
投票

是的,这是正确的。

在 Jenkins 管道中,您只需要运行

sonar-scanner
- 这与其他语言没有什么不同(请参阅 https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/)。 SonarQube 附带 Go 语言插件,因此无需安装任何东西。然后扫描器将从项目根目录中的
sonar-project.properties
获取项目配置并执行分析。

您的

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

您没有提到您是在本地还是在集群模式下运行 SonarQube - 但应该有很小的差异或没有差异(可能会添加服务器 url 并登录到

sonar-project.properties
在集群安装的情况下)。

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

go

© www.soinside.com 2019 - 2024. All rights reserved.