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

相关推荐
多来哈米1 小时前
Jenkins配置vue前端项目(最简单的操作)
运维·前端·jenkins
随机昵称_1234561 小时前
Linux如何从docker hub下载arm镜像
java·linux·arm开发·docker
oneslide3 小时前
Kubernetes V1.24+ & Docker运行时 grafana容器指标显示异常
docker·kubernetes·grafana
杨浦老苏8 小时前
简单直观的笔记管理器Poznote
笔记·docker·群晖
RisunJan11 小时前
docker一键部署项目
运维·docker·容器
你的人类朋友11 小时前
😎 Node.js 应用多阶段构建 Dockerfile 详解
后端·docker·容器
hweiyu0013 小时前
Docker(K8S)容器架构教程(视频教程)
docker·架构·kubernetes
AllenZ17 小时前
🐳 Docker Compose 项目目录被删除后,如何安全关停残留容器
docker
jyan_敬言17 小时前
【Docker】定义和运行多容器应用程序
运维·docker·容器·学习方法
权泽谦18 小时前
从 Linux 到 Docker:一条通向 DevOps 的进阶之路
linux·docker·devops