centos7搭建sonarqube环境
-
- 一、简介
- 二、环境搭建,基于centos7
- 创建sonar数据库
一、简介
sonarqube是一个用于代码质量管理的开源平台,用于管理源代码的质量
-
不遵循代码标准
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
-
潜在的缺陷
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
-
糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
-
重复
显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。
-
注释不足或者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
-
缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率。
-
糟糕的设计
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测藕合。
通过以下介绍SonarQube的安装、使用说明。
二、环境搭建,基于centos7
安装准备:
1.下载jdk安装包,因为sonarqube环境是依赖JVM运行的,所以需要安装jdk
见之前的分享:https://blog.csdn.net/tetsuki/article/details/99637210#java_48
2.下载sonarqube安装包:
官网:https://www.sonarqube.org/
个人分享链接:https://pan.baidu.com/s/1eqNvWA6oegp5wUL74EskNw
3.使用wincp工具将sonarqube安装包传输到centos7中
4.安装解压和压缩工具
yum install -y unzip zip
解压sonarqube-7.7.zip
unzip sonarqube-7.7.zip

5.配置sonarqube环境变量
vim /etc/profile
export SONAR_HOME=/opt/sonarqube-7.7
export PATH=$PATH:$SNOAR_HOME/bin/linux-x86-64
source /etc/profile
6.赋予执行权限,解决后续权限不足的问题
chmod 777 sonarqube-7.7
启动sonarqube服务
cd /opt/sonarqube-7.7/bin/linux-x86-64
/opt/sonarqube-7.7/bin/linux-x86-64
启动成功
浏览器输入http://192.168.126.130:9000/,无法访问
查看日志
tail -f /opt/sonarqube-7.7/logs/sonar.log
sonarqube服务停止,查找资料后发现原因是root用户不能启动es,留意此坑
7.创建普通用户权限
adduser sonaruser
passwd sonaruser
8.给普通用户赋sonar执行权限,以及Java执行权限
chown -R sonaruser:sonaruser /opt/sonarqube-7.7
chown -R sonaruser:sonaruser /usr/java/jdk1.8.0_144
9.切换普通用户
su sonaruser
10.启动服务
./sonar.sh start
tail -f /opt/sonarqube-7.7/logs/sonar.log
11.浏览器再次输入http://192.168.126.130:9000
启动成功
12.登录web初始用户账号
用户名:admin
密码:admin
创建sonar数据库
centos搭建mysql见之前的分享博客
https://blog.csdn.net/tetsuki/article/details/99718920
1.进入mysql
mysql -uroot -p
2.创建数据库,创建用户,赋予用户权限
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY '123456';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES;
3.使用navicat测试连接
连接成功
4.创建成功后,将MySQL的配置文件写入sonar.properties
vim /opt/sonarqube-7.7/conf/sonar.properties
#sonar JDBC连接池配置
sonar.jdbc.username=sonar
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://192.168.126.130:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
sonar.sorceEncoding=UTF-8
#sonarWEB登录用户密码
sonar.login=admin
sonar.password=admin
#端口不写也可以默认9000
sonar.web.port=9000
5.重启sonarqube服务
/opt/sonarqube-7.7/bin/linux-x86-64/./sonar.sh restart
刷新浏览器,无响应
tail -f /opt/sonarqube-7.7/logs/sonar.log
查看日志
发现Wrapper停止服务
切换root用户,赋予整个文件夹所有权限
su root
chmod -R 777 sonarqube-7.7
切换sonaruser用户
重启服务
/opt/sonarqube-7.7/bin/linux-x86-64/./sonar.sh restart
查看日志
tail -f /opt/sonarqube-7.7/logs/sonar.log
tail -f /opt/sonarqube-7.7/logs/web.log
刷新浏览器
进入成功
sonar服务启动会启动sonar服务,elasticsearch服务、MySQL服务
ps -ef | grep elasticsearch
ps -ef | grep soanr
ps -ef | grep mysqld
可通过以上命令查看服务进程
6.安装中文插件
安装完后重启生效
安装插件推荐:checkstyle、findbugs
参考地址: https://blog.csdn.net/weixin_40686603/article/details/90208627