Sonarqube的部署和Jenkins配合使用

Sonarqube的部署和Jenkins maven配合使用

一、什么是Sonarqube

SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,本文将会介绍一下这个工具的安装、配置以及使用。

二、如何安装Sonarqube

2.1 docker和docker-compose的安装

docker和docker-compose安装请依照其他百度资料,本文重点在于sonarqube的安装

2.2 sonarqube安装
~]# cat docker-compose.yml
version: '3'
services:
  sonarqube:
    image: sonarqube:7.4-community # 如果你的项目时jdk8,值得注意的是拉取sonarqube镜像时,不要高于8.0版本,因为sonarqube-8.0版本以上使用的jdk是jdk11,在代码分析的时候可能不兼容导致失败
    ports:
      - "9000:9000"
    networks:
      - sonarnet
    environment:
      - SONARQUBE_JDBC_USERNAME=sonar
      - SONARQUBE_JDBC_PASSWORD=sonar
      - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
  db:
    image: postgres
    networks:
      - sonarnet
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
networks:
  sonarnet:
    driver: bridge
~]# docker-compose up -d
~]# docker-compose ps
        Name                       Command              State                    Ports                  
--------------------------------------------------------------------------------------------------------
sonarqube_db_1          docker-entrypoint.sh postgres   Up      5432/tcp                                
sonarqube_sonarqube_1   ./bin/run.sh                    Up      0.0.0.0:9000->9000/tcp,:::9000->9000/tcp
2.3 web端汉化

访问本机IP:9000

sonarqube首页

点击登录,默认账号密码是admin:admin,然后跳过创建密钥,就进入主页了,但是我们看到主页面是英文的,这时我们可以利用汉化包进行汉化。汉化包地址:https://github.com/xuhuisheng/sonar-l10n-zh/releases?page=4,找到支持此次安装的SonarQube-7.4版本的汉化包。sonarqube汉化包

# 下载汉化包
root@test-server:/data/sonarqube# wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.24/sonar-l10n-zh-plugin-1.24.jar
root@test-server:/data/sonarqube# ls
docker-compose.yml  sonar-l10n-zh-plugin-1.24.jar
# 将汉化包放入容器
root@test-server:/data/sonarqube# docker cp sonar-l10n-zh-plugin-1.24.jar sonarqube_sonarqube_1:/opt/sonarqube/extensions/downloads/
                                             Successfully copied 46.1kB to sonarqube_sonarqube_1:/opt/sonarqube/extensions/downloads/
# 重启容器
root@test-server:/data/sonarqube# docker-compose restart sonarqube
Restarting sonarqube_sonarqube_1 ... done

刷新页面,看到中文说明汉化成功汉化后页面

三、结合Jenkins pipeline

3.1 生成令牌

点击右上角的A,然后点击下拉菜单我的账号在这里插入图片描述

点击安全输入令牌名称,点击生成,保存好生成的令牌

在这里插入图片描述

3.2 Jenkins配置

1、安装SonarQube的插件**(SonarQube Scanner)**

在这里插入图片描述

2、重启Jenkins

3、将刚刚在sonarqube中生成的令牌保存在Jenkins的全局凭据中,类型选择Secret text

在这里插入图片描述

生成后的样子
在这里插入图片描述

4、配置Jenkins系统工具

在系统配置中配置好SonarQube server
在这里插入图片描述

5、配置全局工具

在这里插入图片描述

3.3 pipeline使用

新建一个项目,选择流水线

在这里插入图片描述

// 流水线
pipeline {
  // 参数化构建
    agent any
    parameters {
        gitParameter (name: 'BRANCH_TAG',
                    type: 'PT_BRANCH_TAG',
                    branchFilter: 'origin/(.*)',
                    defaultValue: 'main',
                    selectedValue: 'DEFAULT',
                    sortMode: 'DESCENDING_SMART',
                    description: '⚠ 选择分支或标签')
    }
        // 流水线阶段
    stages {    
        stage('拉取代码') {
            steps {
                checkout([$class: 'GitSCM',
                          branches: [[name: "${params.BRANCH_TAG}"]],
                          doGenerateSubmoduleConfigurations: false,
                          extensions: [],
                          gitTool: 'Default',
                          submoduleCfg: [],
                          userRemoteConfigs: [[url: 'http://10.10.10.10/test/test-server.git',credentialsId: 'gitlab',]]
                        ])
            }
        }
        stage('构建包') {
        agent {
          docker {
                image '192.168.0.10/base/maven:v3'
                args '-v /opt/jenkins-data/_data/workspace/$JOB_NAME:/root/.m2 -v /root/mavenRepository:/usr/repository'
            } 
        }
            steps {
                withSonarQubeEnv('SonarQube') {
                    sh 'cd /var/jenkins_home/workspace/$JOB_NAME/ && mvn clean install -am -Dmaven.test.skip=true -P inner sonar:sonar'
                }
            }
        }
    }
}

然后点击立即构建,看到是绿色的说明构建成功,然后返回SonarQube中首页查看,

在这里插入图片描述

表示代码分析成功了。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值