Jenkins集成SonarQube

发布时间 2023-08-22 18:27:39作者: tomoncle

Jenkins集成SonarQube

1.Jenkins配置

使用管理员登录Jenkins.

1.1 使用管理员登录Jenkins安装SonarQube插件 SonarQube Scanner for Jenkins (注意不同Jenkins版本,显示的插件名称略有差异)

image

1.2 配置 Sonarqube,依次点击: 系统管理 -> 系统配置 -> 新增一个Sonarqube

image

1.3 配置 SonarScanner,依次点击: 系统管理 -> 全局工具配置 -> 新增一个SonarScanner

image

2.Jenkinsfile配置

Python示例

# 在项目的根路径下创建 sonar-project.properties 文件,执行sonar-scanner时就不用显示的指定 sonar.projectKey 参数了, 内容如下:
#
# sonar.projectKey=sonar_pythonapp_AYm3JkyS6upJ4s3JUiqn
#
stage('SonarQube Analysis') {
    environment {
        // Set the scannerHome variable to the SonarScanner tool path
        // 在全局工具配置中配置 SonarScanner, 变量值就是配置的 SonarQube Scanner Name
        scannerHome = tool 'SonarScanner'
    }
    steps {
        // withSonarQubeEnv('sonarqube') 表示在SonarQube环境中运行
        // 在系统管理-系统配置中配置 SonarQube servers
        // 1. 选中 environment variables
        // 2. Nmae 输入 sonarqube,表示SonarQube服务器的名称
        withSonarQubeEnv('sonarqube'){
            // 添加参数 -Dsonar.branch.name=${gitlabSourceBranch}"
            sh "${scannerHome}/bin/sonar-scanner
        }
    }
}

Java示例

在项目的根路径下没有创建 sonar-project.properties 文件,在执行 sonarscanner 时需要显示的指定 sonar.projectKey 等参数.

stage('SonarQube Analysis') {
    environment {
        // 在全局工具配置中配置 maven, 变量值就是配置的 Maven Name
        // Set the maven variable to the maven tool path
        mvn = tool 'maven'
    }
    steps {
        // withSonarQubeEnv('sonarqube') 表示在SonarQube环境中运行
        // 在系统管理-系统配置中配置 SonarQube servers
        // 1. 选中 environment variables
        // 2. Nmae 输入 sonarqube,表示SonarQube服务器的名称
        withSonarQubeEnv('sonarqube'){
            // sh "${mvn}/bin/mvn findbugs:findbugs"
            sh "${mvn}/bin/mvn clean verify sonar:sonar -Dsonar.projectKey=sonar_mxnet-spring-samples_AYnjWl7-6upJ4s3JUirg"
        }
    }
}