安装SonarQube的服务端

version: "2"
services:
  postgres:
    image: postgres:10
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: "sonar"
      POSTGRES_PASSWORD: "sonar"
      
version: "2"
services:
  sonarqube:
    image: "sonarqube:7.9.4-community"
    environment:
      SONARQUBE_JDBC_URL: "jdbc:postgresql://192.168.3.208:5432/sonar"
      SONARQUBE_JDBC_USERNAME: "sonar"
      SONARQUBE_JDBC_PASSWORD: "sonar"
    restart: always
    ports:
      - "8999:9000"

通过admin/admin登录,然后在MyAccount中生成Token令牌并保存

在Jenkins中安装SonarQube Scanner插件

全局工具配置,新增SonarQube Scanner,然后在系统配置中添加SonarQubeServer,添加凭据选择Secret Text,填入之前生成的Token令牌

添加构建步骤,选择Execute SonarQube ScannerTask to run中填入scan

Analysis properties填入如下代码

# 唯一标识符
sonar.projectKey=CiCdTest
# 项目名称
sonar.projectName=CiCdTest
# 项目版本
sonar.projectVersion=1.0
# 扫码对象的路径,.表示全部,java一般扫码/src/main/**
sonar.sources=.
# 指定class文件的具体路径
sonar.java.binaries=./target/classes
# 排除扫码对象路径下的部分路径
sonar.exclusions=**/test/**,**/target/**
# 源码的java版本
sonar.java.source=1.8
# 检测的目标java版本
sonar.java.target=1.8
# 源码的编码格式
sonar.sourceEncoding=UTF-8

关于流水线项目,项目下新建文件sonar-project.properties,此文件的内容和第五步是一样的。

stage('code checking'){
    steps{
        script {
            // 引入全局工具配置中的配置,tool后面指定name
            scannerHome = tool 'sonar-scanner'
        }
        // 引入SonarQube的服务器环境,这里括号里的值填写系统配置中的name
        withSonarQubeEnv('sonarqube'){
            sh "${scannerHome}/bin/sonar-scanner"
        }
    }
}

# To Be Continued!😎

Last Updated: 4/7/2021, 11:50:51 PM