代码审查工具Sonarqube安装
前言:在项目开发当中,完成需求并上线是一件很开心的事情,但为了能按时上线功能不得不为了完成功能而写代码,写的时候觉得先把功能上了以后再回头优化此处代码,但真正上线之后你就会发现你再也不想去修改之前遗留的坏味道的代码,所以需要有个代码审查工具来自动检查代码当中的坏味道和潜藏的bug,Sonarqube就是这样一款代码质量审查工具,来保证代码的整体质量不至于太差
这里我是在CentOS7下部署使用Sonarqube代码审查工具,这里只演示如何在linux下安装步骤。
环境要求:
Sonarqube版本:Sonarqube6.7.6
数据库:mysql5.6(Sonarqube要求数据库最低5.6,我这里只用了一个最低支持),如果mysql版本低了可自行安装高一点的版本
第一步:
1、首先去Sonarqube官网下载安装包:https://www.sonarqube.org/downloads/
2、然后解压缩:tar -zxvf sftp://root@192.168.211.136/data/sonarqube-6.7.6.zip
3、进入到解压缩后的目录:cd sonarqube-6.7.6
4、修改conf配置文件:vim conf/sonar.properties
配置如下内容:
# DATABASE
#
# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=root
sonar.jdbc.password=
Sonarqube启动分析文件的时候会把分析信息存储到数据库里面,所有这里配置的是mysql用户名和密码,我这里用户名是root,没有设置密码;
然后接着配置:
#----- MySQL 5.6 or greater
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=truecharacterEncoding=utf8rewriteBatchedStatements=trueuseConfigs=maxPerformanceuseSSL=false
这里配置的是Sonarqube连接数据库的链接字符串,我用的是mysql,如果你用的是别的数据库(SQLServer,Oracle,PostgreSQL)里面都是支持的,可以找到对应的数据库配置进行配置,这里我就不在列出别的数据库相关的链接字符串了,因为我的电脑上也没装那么多数据库,配置也简单,其他数据库配置可以看下图:
只需要把对应数据库的前面的“#”去掉,修改为可链接即可;
然后接着配置web页面访问端口,找到以下配置,默认的9000端口,可以修改为别的端口,我这里修改为5051:
#sonar.web.port=9000
sonar.web.port=5051
修改完之后,别的地方默认配置就好,然后保存退出::wq
5、在启动Sonarqube之前呢,要先在数据库里面新建好一个名为:sonar的数据库,不然启动的时候会报错,所以我们要新建数据库sonar,可以使用客户端连接工具进行创建也可用语句,如下:
1CREATE SCHEMA `sonar` DEFAULT CHARACTER SET utf8 ;
6、以后都配置好之后,数据库也创建好之后,下面就可以启动Sonarqube了;
切换到Sonarqube目录:
1cd /data/sonarqube-6.7.6/bin/
切换到这里之后,你可能会看到如图的好几个文件夹:
因为我linux上面我把跟我系统不匹配的文件删除了,所以就在win下面截图说明展示了,这里进入到跟你系统匹配的目录里面,然后启动文件,我这里是linux64位,所以我进入的是linux-x86-64,然后启动Sonarqube:
./linux-x86-64/sonar.sh start
Starting SonarQube...
Started SonarQube.
[admin@bogon linux-x86-64]$
到这里之后,看到以上命令只有2条输出,然后就退出了,是不是觉得很奇怪,其实在启动Sonarqube的时候它会把输出信息输出到日志文件夹里面对应的log文件:
[root@bogon logs]# pwd
/data/sonarqube-6.7.6/logs
[root@bogon logs]# ls
access.log ce.log es.log sonar.log web.log
然后我们进入到这里可以看到已经有了5个日志文件,然后我们执行查看命令查看里面的启动信息:
tail -f es.log
tail -f sonar.log
tail -f web.log
这里是动态输出文件内容,然后可以观察一下,有报错的话,里面会显示,这里主要关注一下sonar.log日志,如果你看到了这两个就说明Sonarqube启动成功了:
如果启动失败可以在上面列出的三个日志当中看到错误信息,然后根据错误信息修改一下配置即可;Sonarqube会附带启动ElasticSearch,在下载Sonarqube的时候会自带,在执行以上启动命令的时候会自动启动ES,这里注意ES不支持root用户启动
然后可以在Sonarqube的bin目录下执行命令查看Sonarqube是否真正启动成功:
[admin@bogon linux-x86-64]$ ./sonar.sh status
SonarQube is running (31640).
可以看到状态是running,说明Sonarqube正在运行!
7、启动成功之后然后访问地址可看到Sonarqube页面:
1http://192.168.211.136:5051/about
看到这里页面就说明Sonarqube安装成功了!
8、然后点击Log in登录,账号和密码都是:admin,登录到Sonarqube
9、然后我们去下载一些插件使Sonarqube功能更完善:
这里下载个中文包,使Sonarqube看起来更舒服,然后你可以在这里下载你需要的插件,这里有Sonarqube的官网文档可以查看:https://docs.sonarqube.org/latest/setup/get-started-2-minutes/
安装完你选的插件之后,需要把Sonarqube进行重启一下,不然没有办法直接加载这些插件,安装完之后可以看到如下信息:
说明安装了8个插件,有3个插件是需要更新的,然后点击右边“Restart”进行重启Sonarqube,重启之后插件就会重新加载进来,然后就可以进行项目分析了。
重启之后再访问的话,看到的界面就会变的很舒服了:
10、以上都安装完成之后,然后就可以来进行项目分析了,点击右上角开始,然后会弹出一个弹窗,之后根据提示进行填写相关项进行创建分析项目:
按照步骤配置好之后,会看到右下角有输出,然后把黑色背景里面的代码拷贝,然后在你的项目目录下面进行粘贴,即可分析:
[root@bogon newk12]# sonar-scanner
-Dsonar.projectKey=test-project
-Dsonar.sources=.
-Dsonar.host.url=http://192.168.211.136:5051
-Dsonar.login=203f186468c1c9dc741a17f5c34fa1ba6718c924
执行完之后,就开始进行分析了,然后等一会儿,当你看到以下输出的时候,说明分析已经成功并且完成了:
然后刷新Sonarqube的web页面可看到分析结果,可以看到代码里面隐藏的bug和一些坏味道,然后可以进行查看是哪里的问题:
11、如果在执行分析的时候分析失败了,看到的结果不是SUCCESS,可能的原因是在分析之后提交数据库的时候由于数据库的最大提交限制太小引起的,可以在mysql数据库里执行:
MySQL [(none)] show variables like '%max_allowed_packet';
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| max_allowed_packet | 524288000 |
| slave_max_allowed_packet | 1073741824 |
+--------------------------+------------+
2 rows in set (0.00 sec)
可以看到“max_allowed_packet”的值是很小的,我这里是设置之后的值,可以使用命令进行设置大小:
set global max_allowed_packet = 100 * 1024 * 1024;
或者直接在mysql的配置文件里面的“max_allowed_packet”的值:
vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
bind-address = 0.0.0.0
symbolic-links=0
max_allowed_packet=500M
然后重启mysql:
1service mysqld restart
之后再重新执行分析即可。
12、可以看下基本配置:
然后下图在这里可以进行分析规则配置:
这里默认的是“Sonar way”,你也可以修改,修改之后重启,然后在分析项目的时候就会按照新规则进行,这里我用的默认的,功能挺强大的,我就不一一列举了,如果你有兴趣的话,可以去官网看看文档。
结语:Sonarqube可以很好的分析项目当中书写和代码命名不规范的地方,同时如果你的编辑器也支持Sonarlint的话,也可以使用Sonarqube的代码分析规则,具体怎么配置,我会在下篇手记当中进行配置。
代码审查工具Sonarqube安装的更多相关文章
- windows下代码规范检测工具sonarqube安装与使用,含与maven的结合
一.首先下载sonarqube 地址 : https://www.sonarqube.org/downloads/ (最新版本支持java11+,博主下载支持java8的版本7.7), 下载S ...
- SonarQube安装教程与简单使用(基于Centos7,JDK1.8)
SonarQube 若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11686522.html 概念: SonarQube是一种自动 ...
- docker运行gerrit(代码审查工具)
gerrit是什么? Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面. gerrit背景 Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面.利用网页浏览器,同一个团队的软 ...
- 静态代码审查工具FxCop插件开发(c#)
FxCop是一款微软官方提供的.net平台代码审查工具,目的是检查我们编写的程序集的代码是否符合规范.FxCop默认提供的是微软默认的审查规则,而且该规则符合<Framework DesignG ...
- [转载] Jupiter代码审查工具使用参考
转载自http://blog.csdn.net/jemlee2002/article/details/5715355 一. Jupiter 是什么? 这里的 Jupiter 是一个开源的代 ...
- Jupiter Code Review Reference -- Jupiter代码审查工具使用参考
Jupiter Code Review Reference -- Jupiter代码审查工具使用参考 (修改版) 原创 2010年07月06日 10:43:00 标签: 审查 / reference ...
- 从零开始针对 .NET 应用的 DevOps 运营实践 - Jenkins & SonarQube 安装配置
一.Overview 继续 DevOps 实施的相关内容,在上一篇的博客中,完成了对于工具链中使用到的软件所需的运行环境的配置,在这一篇的博客中,将聚焦于我们使用到的两个主要的软件:Jenkins 与 ...
- 微软源代码管理工具TFS2013安装与使用详细图文教程(Vs2013)
这篇文章联合软件小编主要介绍了微软源代码管理工具TFS2013安装与使用图文教程,本文详细的给出了TFS2013的安装配置过程.使用教程,需要的朋友可以参考下 最近公司新开发一个项目要用微软的TFS2 ...
- [转] 微软源代码管理工具TFS2013安装与使用详细图文教程(Vs2013)
这篇文章联合软件小编主要介绍了微软源代码管理工具TFS2013安装与使用图文教程,本文详细的给出了TFS2013的安装配置过程.使用教程,需要的朋友可以参考下 最近公司新开发一个项目要用微软的TFS2 ...
随机推荐
- 记ambari启用kerberos添加kafka组件后yarn和hive出现Failure unspecified at GSS-API level (Mechanism level: Checksum failed)--403错误
出现警告的过程是: 1.搭建ambari集群成功后,添加了hdfs和zk组件,然后启用了kerberos: 2.kerberos启用完毕后添加hbase和yarn.MapReduce.hive都没有出 ...
- @FindBy、@FindBys、@FindAll的区别
原文地址http://blog.csdn.net/tea_wu/article/details/21080789 selenium-webdriver中获取页面元素的方式有很多,使用注解获取页面元素是 ...
- javascript 类型 内存 对象
var box =0 function test() { alert(box) //全局 }
- CCF 权限查询(模拟)
试题编号: 201612-3 试题名称: 权限查询 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 授权 (authorization) 是各类业务系统不可缺少的组成部分,系统 ...
- ruby中的可调用对象--方法
上一篇讲了ruby中的可调用对象proc和lambda,他们都是块转换成的对象.ruby中的可调用对象还有方法.通过使用method方法,并且以方法名作为参数(字符串或者符号),就可以得到一个方法对象 ...
- Git-基本操作(同SVN)
本人拜读了廖雪峰老师关于Git的讲述后整理所得 1.创建版本库: 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删 ...
- iClap助力移动互联网企业实现规范化管理
移动互联网的迅速崛起,智能移动客户端深刻而全面地影响着人类生活与工作习惯.而企业办公已从原始的纸张办公,到固定PC办公,跨入到一个应用范围更广.效率更高的移动办公时代.由静生动,让企业办公更加人性化和 ...
- 性能测试Loadrunner与Mysql
1.库文件下载地址:http://files.cnblogs.com/files/xiaoxitest/MySQL_LoadRunner_libraries.zip 分别库文件和代码添加到Loadru ...
- spring + groovy 转
http://www.ibm.com/developerworks/cn/java/j-groovierspring2.html http://blog.csdn.net/qq362228416/ar ...
- oracle中修改表已有数据的某一列的字段类型的方法,数据备份
1.在开发过程中经常会遇到表中的某一个字段数据类型不对,比如说需要保存的数据带小数,但是在最初设计的时候是给的number(10)类型,开始保存是整数的时候满足要求,后来在保存小数的时候 会发现自动四 ...