SonarQube+Jenkins配置使用
一、安装插件Manage Jenkins(设置)–>Manage Plugins(插件管理)–>filter(筛选):sonar下载如图中插件二、Jenkins配置1、添加 server authentication token凭据–>添加凭据–>填写token保存2、Manage Jenkins(设置)–>Configure System(系统配置)JK配置参考文章
一、安装插件
Manage Jenkins(设置)–>Manage Plugins(插件管理)–>filter(筛选):sonar下载如图中插件
二、Jenkins配置
1、添加 server authentication token
凭据–>添加凭据–>填写token保存
2、Manage Jenkins(设置)–>Configure System(系统配置)
JK配置参考文章:https://docs.sonarqube.org/latest/analysis/jenkins/
三、Jenkins流水线设置(pipeline)
概述:提供了一个withSonarQubeEnv块,使您可以选择要与之交互的SonarQube服务器。您在Jenkins全局配置中配置的连接详细信息将自动传递到扫描仪。
1、第一种声明性pipeline示例:
stage("build & SonarQube analysis") {
steps{
withSonarQubeEnv('Sonarqube') {
sh 'mvn clean compile sonar:sonar -Dsonar.analysis.branch=qa'
}
}
}
stage("Quality Gate"){
steps{
timeout(time: 15, unit: 'MINUTES') {
waitForQualityGate abortPipeline: true
}
}
}
注意:
- withSonarQubeEnv中添加SonarQube服务的name(在JK中配置的sonarqube server)
- build && SonarQube analysis步骤中的sh后可以:mvn clean compile sonar:sonar
- sh后通过添加参数,指定检查哪个分支,不指定默认扫描master分支,例:-Dsonar.analysis.branch=qa,指定扫描qa分支。
- timeout中参数:time超时时间,unit超时时间的单位(时、分、秒):HOURS/MINUTES/SECONDS
2、第二种声明性pipelie示例:
stage("build & SonarQube analysis") {
steps{
echo 'SonarQube analysis 开始'
withSonarQubeEnv('Sonarqube') {
sh 'mvn clean verify sonar:sonar -Dsonar.analysis.branch=qa'
echo 'SonarQube analysis 结束'
}
script{
timeout(time: 10, unit: 'MINUTES') {
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
}
}
注意:
- 第二种方式可以自定义设置SonarQube中的质量阈值,若检测结果低于设置的质量阈值则构建失败
参考:pipeline script{}编写方式 https://blog.csdn.net/qq_16681279/article/details/88633489
四、SonarQube配置
概述:sonarqube通过配置webhooks告知Jenkins已经完成检测,Quality Gate 监听webhooks返回结果判断是否继续执行Quality Gate之后的步骤,若不配置webhooks会一直停滞在Quality Gate步骤上。
1、项目下的webhooks配置
(1)项目–>具体项目中–>项目配置–>网络调用
(2)创建
(3)填写配置,密码选填
2、全局webhooks配置
(1)配置–>配置下拉菜单–>网络调用
(2)创建
(3)填写信息,与项目中的信息一致
3、自定义质量阈值(配合pipeline中第二种方式使用)
(1)质量阈
(2)创建
(3)若不创建,则使用默认的质量阈值
五、项目的分析结果
错误排查请参考如下链接:SonarQube8.4+Jenkins2遇到的问题
更多推荐
所有评论(0)