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

相关推荐
heimeiyingwang10 小时前
【GitOps·入门篇】工具生态:ArgoCD、Flux、Jenkins X 对比选型
jenkins·flux·argocd·gitops
猫吃了源码10 小时前
k9s简介和安装
linux·docker·kubernetes
云原生指北11 小时前
Docker Sandboxes 上手:从安装到第一次跑 Agent
运维·docker·容器
ziyun66688812 小时前
Docker 容器化 Web 服务架构搭建与自动化运维项目
运维·docker·架构
骇客野人14 小时前
Docker Compose 部署多个独立 Jar 服务完整实操步骤
docker·容器·jar
云川之下16 小时前
【k8s】Docker inspect 命令
docker·容器·kubernetes
骇客野人17 小时前
基于Nginx+Eureka+Apollo+Jenkins+SpringBoot Web系统分布式部署方案
nginx·eureka·jenkins
倔强的石头10617 小时前
飞牛OS部署Mtab:Docker搭建自托管书签导航并实现远程访问
运维·docker·容器
生活爱好者!1 天前
居家观影再升级,docker 部署 DecoTV 影音界面
运维·docker·容器
apgk11 天前
基于Canal实现mysql数据同步到消息队列(RabbitMQ/Kafka)详细操作教程
docker·kafka·rabbitmq