问题描述
我需要使用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"
}
}
}
解决方法
是的,这是正确的。
在Jenkins管道中,您只需要运行sonnar-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
必须安装在扫描仪计算机上。