jenkins与SonarQube连接

axing
2025-08-02 / 0 评论 / 1 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年08月03日,已超过20天没有更新,若内容或图片失效,请留言反馈。

一、jenkins安装插件
1.1下载SonarQube插件

进入Jenkins的系统管理->插件管理->可选插件,搜索框输入sonarqube,安装重启。

mduf8mef.png
1.2启用SonarQube

Jenkins的系统管理->系统配置,添加SonarQube服务。

mduh628r.png

二、SonarQube配置
2.1禁用审查结果上传到SCM功能
mduh6zm8.png
2.2生成token

添加jenkin用户 token:squ_4bc173eb520dd35c176104baa1b899a992e88c88

mduhbqpo.png

三、jenkins配置
3.1添加令牌

Jenkins的系统管理->系统配置->添加token
类型切换成Secret text,粘贴token,点击添加。

mduhgga6.png

选上刚刚添加的令牌凭证,点击应用保存。

mduhhtgl.png

3.2SonarQube Scanner 安装

进入Jenkins的系统管理->全局工具配置,下滑找到图片里的地方,点击新增SonarQube Scanner,我们选择自动安装并选择最新的版本。

mduhm8u5.png

四、非流水线项目添加代码审查
4.1添加构建步骤

编辑之前的自由风格构建的demo项目,在构建阶段新增步骤。

mduhqstr.png

analysis properties参数如下
# 项目名称id,全局唯一
sonar.projectKey=sprint_boot_demo
# 项目名称
sonar.projectName=sprint_boot_demo
sonar.projectVersion=1.0
# 扫描路径,当前项目根目录
sonar.sources=./src
# 排除目录
sonar.exclusions=**/test/**,**/target/**
# jdk版本
sonar.java.source=1.17
sonar.java.target=1.17
# 字符编码
sonar.sourceEncoding=UTF-8
# binaries路径
sonar.java.binaries=target/classes

4.2构建并查看结果

jenkins点击立即构建,查看构建结果

mdv7itdj.png

查看SonarQube扫描结果

mdv7jh2p.png

五、流水线项目添加代码审查
5.1创建sonar-project.properties文件

项目根目录下,创建sonar-project.properties文件,内容如下
# 项目名称id,全局唯一
sonar.projectKey=sprint_boot_demo
# 项目名称
sonar.projectName=sprint_boot_demo
sonar.projectVersion=1.0
# 扫描路径,当前项目根目录
sonar.sources=./src
# 排除目录
sonar.exclusions=**/test/**,**/target/**
# jdk版本
sonar.java.source=1.17
sonar.java.target=1.17
# 字符编码
sonar.sourceEncoding=UTF-8
# binaries路径
sonar.java.binaries=target/classes

5.2修改Jenkinsfile

加入SonarQube代码审查阶段
pipeline {
    agent any

    stages {
        stage('拉取代码') {
            steps {
                echo '开始拉取代码'
                checkout([$class: 'GitSCM', 
                          branches: [[name: '*/master']], 
                          userRemoteConfigs: [[url: 'https://gitee.com/axzys/sprint_boot_demo.git']]])
                echo '拉取代码完成'
            }
        }
        
        stage('打包编译') {
            steps {
                echo '开始打包编译'
                sh 'mvn clean package'
                echo '打包编译完成'
            }
        }
        
        stage('代码审查') {
            steps {
                echo '开始代码审查'
                script {
                    // 引入SonarQube scanner,名称与jenkins 全局工具SonarQube Scanner的name保持一致
                    def scannerHome = tool 'SonarQube'
                    // 引入SonarQube Server,名称与jenkins 系统配置SonarQube servers的name保持一致
                    withSonarQubeEnv('SonarQube') {
                        sh "${scannerHome}/bin/sonar-scanner"
                    }
                }
                echo '代码审查完成'
            }
        }
        
        stage('部署项目') {
            steps {
                echo '开始部署项目'
                echo '部署项目完成'
            }
        }
    }
}

5.3构建测试
mdv8snzy.png

0

评论 (0)

取消