SonarQube+Jenkins配置使用

一、安装插件
Manage Jenkins(设置)–>Manage Plugins(插件管理)–>filter(筛选):sonar下载如图中插件
SonarQube+Jenkins配置使用_第1张图片
二、Jenkins配置
1、添加 server authentication token
凭据–>添加凭据–>填写token保存
SonarQube+Jenkins配置使用_第2张图片
SonarQube+Jenkins配置使用_第3张图片
2、Manage Jenkins(设置)–>Configure System(系统配置)
SonarQube+Jenkins配置使用_第4张图片

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)项目–>具体项目中–>项目配置–>网络调用
SonarQube+Jenkins配置使用_第5张图片
(2)创建
(3)填写配置,密码选填
SonarQube+Jenkins配置使用_第6张图片
2、全局webhooks配置
(1)配置–>配置下拉菜单–>网络调用
SonarQube+Jenkins配置使用_第7张图片
(2)创建
(3)填写信息,与项目中的信息一致
3、自定义质量阈值(配合pipeline中第二种方式使用)
(1)质量阈
(2)创建
SonarQube+Jenkins配置使用_第8张图片
(3)若不创建,则使用默认的质量阈值
SonarQube+Jenkins配置使用_第9张图片
五、项目的分析结果
SonarQube+Jenkins配置使用_第10张图片

错误排查请参考如下链接:SonarQube8.4+Jenkins2遇到的问题

你可能感兴趣的:(jenkins,sonarqube8.4,jenkins,settings)