sonarqube代码质量管理平台搭建及使用
sonarqube是一个代码质量管理平台,可以定位代码中潜在的或者明显的错误,支持多种语言的代码审查,且有丰富的插件,方便集成使用。
分为三步走:
1.sonarqube搭建
2.sonarqube使用
3.sonarqube集成
sonarqube搭建
sonarqube官网:https://www.sonarqube.org/
最新版本是8.1,看官方文档的要求里 server要求jdk11,且数据库不支持mysql。
因测试平台,jenkins都部署在65那台机器上,我也不想将其jdk8换成jdk11,于是找了一个相对比较新的版本7.6
sonarqube7.6的安装包下载地址:
选择7.6的原因有两点:1.可以用原有的jdk8 2.可以用原有的mysql5.7
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip
sonarqube安装
1.将下载下来的7.6版本(建议先本地下载再传到服务器上去)解压缩
unzip sonarqube-7.6.zip
2.将解压缩后的文件移动到/usr/local/ 下面,并且文件夹的名字变为sonarqube
mv sonarqube-7.6 /usr/local/sonarqube
3.启动sonarqube
进入/usr/local/sonarqube/bin/linux-x86-64 bin的目录下面对应不同的操作系统,可根据实际的操作系统进行选择进入
./sonar.sh start
这时会提示started
但实际上并没有启动成功,可以去查看日志,但是网上其他很多文章也说过这个问题,其实就是sonarqube不能通过root来启动,需要创建用户
4.创建非root用户并启动
1--创建用户
adduser sonarUser
2--设置密码 需要输入两次,要复杂一点
passwd XXXXr
3---修改sonar的目录和用户组为sonarUser(/usr/local目录下面)
chown -R sonarUser:sonarUser sonarqube
4--以sonarUser执行命令
su sonarUser
./sonar.sh start
重启和停止:
- ./sonar.sh stop 停止服务
- ./sonar.sh restart 重启服务
5.访问sonar
但是这个时候,首页会给你报个数据库的错误,当然因为并没有创建数据库的原因
6.创建sonar数据库
创建数据库 sonar
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
只要创建sonar数据库就行了,表格sonar会自动进行创建
修改sonar的数据库配置文件
cd /usr/local/sonarqube/conf
vim sonar.properties
以下内容都是配置文件里面预留的,查找相关内容,将#去掉,配置成实际的
需要修改的地方
1.数据库的ip,端口
2.数据库的用户名和密码
以上配置完成后,重启sonar
- ./sonar.sh restart 重启服务
访问sonarhttp://x.x.x.x:9000
这次因为配置了数据库,所以第一次页面启动比较慢,他需要去初始化数据库的表格
至此sonarqube算是搭建完成!
sonarqube使用
默认登录用户名密码为admin,admin
1.汉化 安装中文插件,完成后会提示你重启,重启下就变成中文了。
2.拿商家端做个实验
因商家端之前我拿jenkins部署过,所以相对比较了解,它是通过maven去编译的
1)创建一个项目,名称啥的可以随便填,但是为了方便标识,最好就用可以代表项目的名字
2)创建令牌,一步步执行就行了
3)选择语言及构建方式,点击代码区域右上角的复制
4)将复制的内容放到服务器上项目的根目录下面执行,执行完成后会自动将报告上传到sonarqube
坑:
maven命令执行完成时报错,报告删除失败:
原因是mysql对最大上传文件的大小做了限制4M,实际报告有68M
方法:修改mysql配置文件
my.cnf 将max_allowed_packet=128M 可以根据实际情况进行设置
记住1:my.cnf设置完成后,一定要将mysql重启service mysqld restart
记住2:sonar也必须重启
以上都做完,再重新执行下maven命令就可以了。
sonarqube集成
这部分后面在写,可以通过jenkins或者gitlabci都可以进行集成