SonrQube

作者: 肥四_F4 | 来源:发表于2020-06-21 14:49 被阅读0次

    一、基本概述

    1.SonrQube是一个开源的代码质量管理系统,用于检测代码中的错误,漏洞和代码规范。它可以以现有的Gitlab、Jenkins集成,以便在项目拉去后进行连续的代码检查。
    2.使用SonQube前提
    1.SonrQube基于Java开发,所以需要安装Open JDK8版本
    2.SonrQube需要依赖MySOL数据库,至少5.6版本以上
    3.SonrQube的小型实例至少需要4GB内存,如果是大型实例需要16GB
    二、SonrQube服务安装
    1.环境准备
    安装数据库,创建一个sonar库

    [root@sonarqube ~ 20:50:30]# yum localinstall sonarqube/mysql-*.rpm
    [root@sonarqube ~ 20:54:31]# systemctl start mysqld
    [root@sonarqube ~ 20:55:13]# mysqladmin password "oldben123"
    [root@sonarqube ~ 20:59:39]# mysql -uroot -poldben123 -e "CREATE DATABASE sonar DEFAULT CHARACTER SET utf8"
    [root@sonarqube ~ 21:01:35]# mysql -uroot -poldben123 -e "show databases;"
    

    安装sonarqube

    [root@sonarqube ~ 21:24:39]# yum install java -y
    [root@sonarqube ~ 21:09:21]# unzip sonarqube/sonarqube-7.0.zip -d /usr/local/
    [root@sonarqube ~ 21:08:50]# ln -s /usr/local/sonarqube-7.0/ /usr/local/sonarqube
    

    配置sonarqube

    [root@sonarqube ~ 21:10:49]# vim /usr/local/sonarqube/conf/sonar.properties
     16 sonar.jdbc.username=root
     17 sonar.jdbc.password=oldben123
     26 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncod    ing=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false #将这行的注释取了
    

    启动sonarqube (不能直接以root身份启动,需要创建普通用户)

    [root@sonarqube ~ 21:15:21]# useradd sonar
    [root@sonarqube ~ 21:20:07]# chown -R sonar.sonar /usr/local/sonarqube-7.0/
    [root@sonarqube ~ 21:21:01]# su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start"
    

    安装插件,让其支持中文

    [root@sonarqube ~ 21:35:00]# rm -rf /usr/local/sonarqube/extensions/plugins/
    [root@sonarqube ~ 21:39:37]# tar xf sonarqube/sonar_plugins.tar.gz  -C /usr/local/sonarqube/extensions/
    [root@sonarqube ~ 21:40:28]# chown -R sonar.sonar /usr/local/sonarqube/extensions/
    [root@sonarqube ~ 21:41:14]# su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start"
    

    在网页登录产生一个token令牌(其他项目需要访问sonarqube就需要使用token令牌的方式。)
    jenkins: 34886c89778d01a25e027b4d4428ca32710add3e

    sonar-scanner这是一个客户端,需要安装才可以

    #在130(sonarqube)上执行
    [root@sonarqube ~ 21:41:35]# scp sonarqube/sonar-scanner-cli-4.0.0.1744-linux.zip root@10.0.0.120:~
    
    #在120(jenkins)上执行
    [root@jenkins ~ 21:54:55]# unzip sonar-scanner-cli-4.0.0.1744-linux.zip -d /usr/local/
    [root@jenkins ~ 21:54:12]# ln -s /usr/local/sonar-scanner-4.0.0.1744-linux/ /usr/local/sonar-scanner
    
    

    确保jenkins 能ping通sonarqube的主机

    [root@jenkins ~ 21:57:16]# echo "10.0.0.130 sonar.oldben.com" >>/etc/hosts
    [root@jenkins ~ 21:57:16]# ping sonar.oldben.com
    
    [root@jenkins ~ 22:02:35]# git clone git@gitlab.oldben.com:dev/web-monitor.git
    [root@jenkins ~ 22:04:00]# cd web-monitor/
    
    #代码分析 (html php 用第一种,java两种都可以)
    [root@jenkins ~ 22:04:00]# /usr/local/sonar-scanner/bin/sonar-scanner \
      -Dsonar.projectKey=html \
      -Dsonar.sources=. \
      -Dsonar.host.url=http://sonar.oldben.com:9000 \
      -Dsonar.login=34886c89778d01a25e027b4d4428ca32710add3e
    {java项目}
    mvn sonar:sonar \
      -Dsonar.host.url=http://sonar.oldben.com:9000 \
      -Dsonar.login=34886c89778d01a25e027b4d4428ca32710add3e
    

    注意:每次登录一个新的系统后,请修改默认的密码,养成习惯 oldben123

    2000.png 1000.png
    jenkins集成Sonar-Scanner
    3000.png
    jenkins改造html项目
    sonar.projectName=${JOB_NNAME}
    sonar.projectKey=html 
    sonar.sources=. 
    
    6666.png
    jenkisn改造java项目
    sonar.projectName=${JOB_NNAME}
    sonar.projectKey=java
    sonar.sources=. 
    sonar.java.binaries=target/sonar
    
    7777.png

    项目发布完毕,需要钉钉通知,发布的情况(成功还是失败)

    在钉钉上群聊里添加机器人,然后保存这个webhook地址
    https://oapi.dingtalk.com/robot/send?access_token=1aa6b9f14a56b5150324d35c91e09b2e355188bc748e5618519fff10765ccc1a

    13.png 10.png

    在jenkins的项目里部署


    12.png

    发布代码进行测试

    dingding-sonar
    钉钉的sonar集成通知,钉钉的sonar(代码质量管理工具的)集成通知,非常简单的一个小工具
    项目部署
    在服务器上下载插件
    钉钉与sonar集成的参考地址:https://gitee.com/chejiangyi/dingding-sonar

    [root@jenkins ~ 13:55:26]# wget https://gitee.com/chejiangyi/dingding-sonar/repository/archive/master.zip
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    相关文章

      网友评论

          本文标题:SonrQube

          本文链接:https://www.haomeiwen.com/subject/rzvbxktx.html