go - 如何使用 Jenkins 为 Go 代码运行 SonarQube
问题描述
我需要使用 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"
}
}
}
解决方案
对,那是正确的。
在您的 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 页面复制的示例 - 您可能需要根据项目布局进行一些调整(例如 add sonar.inclusions=**/.*go
)。SonarQube 应该自动检测文件是否在 Go 中,但您也可以添加sonar.language=go
到该文件以强制它。
您没有提及您是在本地运行 SonarQube 还是在集群模式下运行 - 但应该几乎没有区别(可能sonar-project.properties
在集群安装的情况下添加服务器 url 和登录)。
注意go
需要安装在扫描仪机器上。
推荐阅读
- sql - 将多个分组查询组合成单个查询
- android - Android Studio 正在为 3 个月大的 react-native 项目生成非常旧的 apk
- python - Python Pandas dataFrame - 列选择
- wordpress - 如何使用 Wordpress 在主页上缩小滑块大小
- angular - Angular Observable 链接
- php - 使用 PHP 获取用户操作系统版本
- regex - Notepad++中如何去掉前导零
- css - 如何在 CSS 中绘制细的灰色虚线边框?
- apachebench - 具有包含音频内容的 http 多部分/相关请求的负载测试服务器
- database - 如何从数据库中检索堆栈