SonrQube

2020-06-21  本文已影响0人  肥四_F4

一、基本概述

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





































上一篇下一篇

猜你喜欢

热点阅读