如何使用 Jenkins 运行 SonarQube for Go 代码
How to run SonarQube for Go code using Jenkins
我需要 运行 使用 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/)。 Go语言插件自带SonarQube所以不需要安装任何东西。然后,扫描器将从项目根目录中的 sonar-project.properties
中获取项目配置并执行分析。
您的 sonar-project.properties
文件似乎是从 SonarQube for Go 页面复制的示例 - 您可能希望根据项目布局进行一些调整(例如添加 sonar.inclusions=**/.*go
)。 SonarQube 应该自动检测 Go 中的文件,但您也可以向该文件添加 sonar.language=go
以强制执行它。
你没有提到 运行 SonarQube 是在本地还是在集群模式下 - 但应该没有什么区别(可能添加服务器 url 并登录到 sonar-project.properties
集群安装案例)。
请注意 go
需要安装在扫描仪机器上。
我需要 运行 使用 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/)。 Go语言插件自带SonarQube所以不需要安装任何东西。然后,扫描器将从项目根目录中的 sonar-project.properties
中获取项目配置并执行分析。
您的 sonar-project.properties
文件似乎是从 SonarQube for Go 页面复制的示例 - 您可能希望根据项目布局进行一些调整(例如添加 sonar.inclusions=**/.*go
)。 SonarQube 应该自动检测 Go 中的文件,但您也可以向该文件添加 sonar.language=go
以强制执行它。
你没有提到 运行 SonarQube 是在本地还是在集群模式下 - 但应该没有什么区别(可能添加服务器 url 并登录到 sonar-project.properties
集群安装案例)。
请注意 go
需要安装在扫描仪机器上。