技术实操--jenkins集成sonarQube

1. sonarQube

大多数jenkins的流水线都有一个“分析”的阶段,用于处理收集代码的指标、确定复杂度,识别不良编码和可能的漏洞以及计算潜在的资源成本(技术债务)。这些分析可以识别潜在的问题,修复这些问题。可以增强代码的可读性,可靠性和可维护性。

而在jenkins的分析阶段,用的往往是目前最流行的’分析’应用之一 sonarQube。

sonarQube(以前被称为sonar)是一个用于管理一些关键软件领域的代码质量,包括

  • 架构设计
  • 注释
  • 编码规则
  • 潜在错误
  • 重复代码
  • 单元测试
  • 复杂度

的一个开源项目。

具体的使用指南,请查看sonarQube使用指南

2. jenkins安装SonarQube Scanner插件

登陆jenkins页面–>系统管理–>插件管理

安装插件SonarQube Scanner

这个插件的主要作用是提供一个与sonarQube服务器连接的桥梁。安装完此插件之后,需要配置sonarQube的地址。

安装完成,重启之后。

登陆jenkins页面–>系统管理–>系统配置

  • 找到SonarQube servers,配置你的sonarQube服务器地址。

  • 添加token:(怎么添加看下一步)

    选择 Secret text。将生成的token填写至Secret中。ID可以自己随便填写或者不写

  • (这个是sonarQube管理员页面)使用sonarQube管理员生成token

至此,jenkins算是与sonarQube建立了连接。

3. sonarQube扫描器

sonarQube扫描代码,需要一个插件工具既是sonarQube扫描插件工具。这个工具的安装方式有很多种,

  • 通过自动化构建工具安装

    不管是maven项目,还是gradle项目都提供了安装sonarQube扫描工具的插件。

    这种方式就是将插件安装在具体的项目中

    比如:Gradle项目,需要在你项目中的build.gradle文件中,引入

    plugins {
      id "org.sonarqube" version "2.7"
    }
    
  • 通过jenkins安装

    在jenkins中安装扫描器工具。这样一来,就可以扫描所有的项目。不需要为项目单独安装。

    安装方式:

    登陆jenkins页面–>系统管理–>全局工具配置

找到SonarQube Scanner

如果可以上网,网速还可以,可以进行自动安装。该扫描工具插件下载源是maven中央仓库

如果网速一般或者要求离线安装。需要自己下载相应版本的工具,填写安装路径。

下载sonarQube扫描器—https://repo1.maven.org/maven2/org/sonarsource/scanner/cli/sonar-scanner-cli/4.3.0.2102/sonar-scanner-cli-4.3.0.2102.zip

sonarQube扫描器使用方法

然后解压放到jenkins的插件目录下(这个目录随意,保持路径一致,jenkins能找到就行)

/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/myScanner

修改配置文件:添加对应路径

hudson.plugins.sonar.SonarRunnerInstallation.xml

<?xml version='1.1' encoding='UTF-8'?>
<hudson.plugins.sonar.SonarRunnerInstallation_-DescriptorImpl plugin="sonar@2.11">
  <installations>
    <hudson.plugins.sonar.SonarRunnerInstallation>
      <name>myScanner</name>   <home>/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/myScanner</home>
    </hudson.plugins.sonar.SonarRunnerInstallation>
</hudson.plugins.sonar.SonarRunnerInstallation_-DescriptorImpl>

jenkins这些配置都是热读取,不用重启。

注意解压后插件扫描工具,执行文件的文件权限问题

[root@node1 bin]# ll
总用量 16
-rwxr-xr-x 1 root root 1762 2月  20 08:14 sonar-scanner
-rwxr-xr-x 1 root root 2420 2月  20 08:14 sonar-scanner.bat
-rwxr-xr-x 1 root root  595 2月  20 08:14 sonar-scanner-debug
-rwxr-xr-x 1 root root  544 2月  20 08:14 sonar-scanner-debug.bat

页面配置对应地址就可以了

4. 代码质量扫描

这里构建一个普通的流水线脚本

pipeline {
   agent any
   stages {
    stage('获取源码') {
      steps {
        script {
          checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'http://git.com.cn/test.git']]])
        }
      }
    }
   stage('代码质量检测') {
      steps {
         script {
           def scannerHome = tool 'myScanner';//这个名字一定是对应全局工具配置中sonar扫描器的名字
           withSonarQubeEnv(credentialsId: '8e08dedd-70ec-485a-a33e-e06ca100c010') {
             sh "${scannerHome}/bin/sonar-scanner 
               -Dsonar.projectKey=XXXServer 
               -Dsonar.projectName=XXXServer 
               -Dsonar.projectVersion=2.0.0 
               -Dsonar.language=java  
               -Dsonar.sourceEncoding=utf8 
               -Dsonar.sources=. 
               -Dsonar.java.binaries=."//这里将sonarQube的属性定义在这里,可以定义在项目文件中,在这里引用配置文件
            }
          }
      }
    }
   }
}

5. 项目扫描成功展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值