Jenkins (五) - Docker SonarQube

Jenkins (五) - Docker SonarQube

Jenkins 集成 SonarQube,编译项目并通过SonarQube分析项目

前提

基于已有的环境 Jenkins (四) - Docker SonarQube

基于 Jenkins (三) - 拉取编译 上的mockito-demo工程

配置工程

Administration -> Projects -> Management

Create Project


配置用户

Create User


Group sonar-users 所有的认证用户默认都是属于此组。

设置权限



分析工程

通过设置,生成 maven 远程调用脚本,为后续 Jenkins集成SonarQube编译提供便利

点击项目 mockito-demo

点击 Local


sqp_8d4181eca2705f6724922c760ffacecdb2327423


由于mockito-demo项目是maven工程而非 Gradle工程,Copy 生成的maven脚本

bash 复制代码
mvn clean verify sonar:sonar \
  -Dsonar.projectKey=mockito-demo \
  -Dsonar.projectName='mockito-demo' \
  -Dsonar.host.url=http://192.168.56.102:9000 \
  -Dsonar.token=sqp_8d4181eca2705f6724922c760ffacecdb2327423

配置Jenkins pipeline

将以上mvn clean verify sonar:sonar ... 配置入pipeline中

groovy 复制代码
node {
    def mvnHome
    stage('Preparation') { // for display purposes
        echo 'Checkout'
        checkout scmGit(branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: 'fernado', url: 'https://github.com/fernado/mockito-demo.git']])
        mvnHome = tool 'maven396'
    }
    stage('Analyze') {
        echo 'Sonaqube'
        withEnv(["MVN_HOME=$mvnHome"]) {
            if (isUnix()) {
                sh '"$MVN_HOME/bin/mvn" clean verify sonar:sonar -Dsonar.projectKey=mockito-demo -Dsonar.projectName=mockito-demo -Dsonar.host.url=http://192.168.56.102:9000 -Dsonar.token=sqp_8d4181eca2705f6724922c760ffacecdb2327423'
            } else {
                bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
            }
        }
    }
    stage('Build') {
        echo 'Build'
        // Run the maven build
        withEnv(["MVN_HOME=$mvnHome"]) {
            if (isUnix()) {
                sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
            } else {
                bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
            }
        }
    }
    stage('Test Results') {
        echo 'Test Results'
        sh 'make check || true' 
        junit '**/target/surefire-reports/TEST-*.xml'
        archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
    }
    stage('Deploy') {
        echo 'Deploy'
        // when {
        //   expression {
        //     currentBuild.result == null || currentBuild.result == 'SUCCESS' 
        //   }
        // }
        // steps {
        //     sh 'make publish'
        // }
    }
}

Build Now

查看SonarQube生成项目结果





用户 Tokens Create

Administrator -> Security -> 用户 -> sonar_user -> Tokens

用户 Tokens Revoke

与 Tokens Create 类似,进入Administrator -> Security -> 用户 -> Revoke

相关推荐
DeeplyMind2 小时前
第12章 Docker存储机制(重要)
运维·docker·容器
xuhe24 小时前
Claude Code配合Astro + GitHub Pages:为 sharelatex-ce 打造现代化的开源项目宣传页
linux·git·docker·github·浏览器·overleaf
Mr.小海8 小时前
Docker 容器间依赖管理
运维·docker·容器
❀͜͡傀儡师15 小时前
使用 Docker 部署 Puter 云桌面系统
运维·docker·容器
swbook16 小时前
k8s1.35.1二进制部署
docker·kubernetes·k8s·kubectl-ai
2501_9248787316 小时前
中小电商自建直播间成本降47%:AI口播智能体轻量部署(含Docker+OBS链路)
人工智能·docker·容器·排序算法·宽度优先
taiguisheng16 小时前
Windows系统中安装WSL2与Docker-Desktop
windows·docker·容器
予枫的编程笔记17 小时前
【Docker进阶篇】Docker Compose实战:Spring Boot与Redis服务名通信全解析
spring boot·redis·docker·docker compose·微服务部署·容器服务发现·容器通信
岳来17 小时前
网络小白对容器参数endpoint 和gateway 对比
网络·docker·容器·gateway·endpoint
小锋学长生活大爆炸17 小时前
【教程】极简部署OpenClaw并接入飞书等各大平台
docker·飞书·openclaw