SonarQube部署使用、整合Jenkins使用

介绍:

SonarQube是一款非常好用的代码质量检测工具,使用简单,可在CICD中担当代码检测角色,提升代码质量;

最佳实践:

开发提交代码到gitlab→触发jenkins build→拉取代码到jenkins节点→SonarQube代码检测→mvn打jar包→测试→dockerfile打成镜像→docker tag →docker push到harbor → k8s部署

官网
https://www.sonarqube.org/
4个版本:Community 社区、Developer 开发者、Enterprise 企业、Data Center 数据中心
社区版本免费,其他的要申请适用

部署:
1.拉镜像

docker pull sonarqube:8.6.1-community

2.创建卷:

docker volume create --name sonarqube_data
docker volume create --name sonarqube_logs
docker volume create --name sonarqube_extensions

3.创建本地文件

mkdir -p /opt/sonarqube/data /opt/sonarqube/extensions /opt/sonarqube/logs

4.运行docker
默认使用h2数据库

docker run -d --name sonarqube_8.6.1-h2 \
    -p 9000:9000 \
    -v sonarqube_data:/opt/sonarqube/data \
    -v sonarqube_extensions:/opt/sonarqube/extensions \
    -v sonarqube_logs:/opt/sonarqube/logs \
    sonarqube:8.6.1-community

启动之后

CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                    NAMES
d78e9918c45b        sonarqube:8.6.1-community   "bin/run.sh bin/sona…"   3 minutes ago       Up 3 minutes        0.0.0.0:9000->9000/tcp   sonarqube_8.6.1-h2

登录页面 http://ip:9000/ 

默认初始用户名密码:admin/admin

注意:
h2内嵌数据库只能用于测试场景
h2内嵌数据库无法扩展,也无法升级到新版本的SonarQube,并且不能支持将你的数据迁移至其他数据库引擎。

使用其他数据库,目前支持Oracle 11g/12c/18c/19c、PostgreSQL 9.3 or greater、Microsoft SQLServer 2014/2016/2017 and SQL Azure。

docker run -d --name sonarqube \
    -p 9000:9000 \
	# 数据库链接
    -e SONAR_JDBC_URL=... \
	# 数据库账号
    -e SONAR_JDBC_USERNAME=... \
	# 数据库密码
    -e SONAR_JDBC_PASSWORD=... \
    -v sonarqube_data:/opt/sonarqube/data \
    -v sonarqube_extensions:/opt/sonarqube/extensions \
    -v sonarqube_logs:/opt/sonarqube/logs \
    <image_name>

汉化-装个插件:

Java项目代码检测

1.新建项目

2.创建令牌

3.检测Java项目

在项目目录下执行

mvn sonar:sonar \
  -Dsonar.projectKey=test_react2 \
  -Dsonar.host.url=http://192.168.11.223:9000 \
  -Dsonar.login=c636d7ebfb678b24111520b7f987e694ad35a640

3个参数分别为项目名,sonar地址,项目令牌

 

分析效果:

4.执行前端代码分析(React代码为例)

在项目目录下执行:

sonar-scanner.bat -D"sonar.projectKey=test_react2" -D"sonar.sources=." -D"sonar.host.url=http://192.168.11.223:9000" -D"sonar.login=c636d7ebfb678b24111520b7f987e694ad35a640"

 这里需要装个客户端 SonarScanner

下载完之后 sonar-scanner-cli-4.5.0.2216-windows.zip 解压

执行

D:\迅雷下载\sonar-scanner-4.5.0.2216-windows\bin\sonar-scanner.bat -D"sonar.projectKey=test_react" -D"sonar.sources=." -D"sonar.host.url=http://192.168.11.223:9000" -D"sonar.login=c636d7ebfb678b24111520b7f987e694ad35a640"

# 你可以把将 bin 目录添加到 %PATH% 环境变量

效果:

异常问题:

装插件导致SonarQube启动不了的问题处理

1.装完插件之后重启SonarQube,启动失败

2.查看docker日志  docker logs d78e9918c45b,发现如下异常

3.处理:

cd /var/lib/docker/volumes/sonarqube_extensions/_data/plugins

[root@localhost plugins]# ll
总用量 19280
-rwx------. 1 ltx ltx 15545214 2月   4 15:04 checkstyle-sonar-plugin-8.39.jar
-rwx------. 1 ltx ltx      123 1月  25 20:22 README.txt
-rwx------. 1 ltx ltx  4127065 2月   4 15:00 sonar-aemrules-plugin-1.3.jar
-rwx------. 1 ltx ltx    60359 2月   2 14:00 sonar-l10n-zh-plugin-8.6.jar

# 删除此插件
rm -rf codehawk-1.5.jar

4.重启ok

 

jenkins整合

1.在Pipeline里面添加执行SonarQube

        stage('SonarQube+Build') {
            //并行任务
            parallel {
                //代码检测
                stage('SonarQube代码检测') {
                    steps {
                        //查看目录
                        sh 'pwd'
                        //查看maven
                        sh 'mvn -v'
                        //sonar代码质量检测
                        sh 'mvn sonar:sonar -Dsonar.projectKey=boss -Dsonar.host.url=http://192.168.11.223:9000 -Dsonar.login=70bf31671ef415349b7e83945bc90d1a013dbee9'
                    }
                }
                //打包
                stage('Build打包') {
                    steps {
                        //查看目录
                        sh 'pwd'
                        //查看jdk
                        sh 'java -version'
                        //查看maven
                        sh 'mvn -v'
                        //打包
                        sh 'mvn clean install -Dmaven.test.skip=true'
                    }
                }
            }
        }

jenkins执行步骤

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小绿豆

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值