sonar的配置也是在网上找了很多资料配置成功的,分享给大家,我们的项目是.net开发的,.net有两个框架.netframework和.netcore,两者的区别是是否跨平台,后者跨平台。两个框架因为编译的环境不一样,所以进行分析的时候使用的命令是不一样的(这个在网上查了很多资料也没查到,无奈只能看英文再加上反复试验才摸索出来的)。先将sonar的安装和配置分享出来。
一 . SonarQube代码质量检查工具简介
Sonar (SonarQube)是一个开源平台,用于管理源代码的质量.Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等二十几种编程语言的代码质量管理与检测。Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。
1. 不遵循代码标准
sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具规范代码编写。
2. 潜在的缺陷
sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具检 测出潜在的缺陷。
3. 糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
4. 重复
显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。
5. 注释不足或者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
6. 缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率。
7. 糟糕的设计
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测藕合。
二. 安装:
2.1 安装SonarQube web server
1. 首先确保安装了jdk1.8 +
2. 到此链接 https://www.sonarqube.org/downloads/
下载sonalqube(下载社区版,是开源的),
我下载的是当前最新版本 7.7
并解压,解压完之后的目录如下 :
3. 到解压目录的bin\windows-x86-64(我的是64位的)目录下:
双击StartSonar.bat文件 启动SonarQube
4. 到浏览器界面,输入 : http://localhost:9000
// 能够进入界面证明安装成功
2.2 安装数据库
1. 版本要求:
在conf目录下的sonar.properties文件下:
有这样一行配置 :
#----- MySQL >=5.6 && < 8.0
所以, mysql版本过高的话,要降级!! 比如说我... 用的就是8.0.11版本的
附 : mysql 8.0.11 版本卸载
1. 关闭mysql服务
net stop mysql
2. 删除mysql
sc delete mysql
3. 删除mysql的目录文件, 我直接把mysql安装目录整个删除了
4. 将mysql的环境变量清空
然后在下载安装一个合适版本的即可
2. 为sonarqube 创建一个数据库
create database 数据库名;
3. 创建sonarqube用户并进行授权
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; // 创建用户并设置密码
// username 为创建的用户名
host为对应的主机地址,本地就是localhost
password为设置的密码
GRANT ALL ON *.* TO '用户名'@'localhost'; //对用户进行授权操作
4. 修改SonarQube配置文件,添加Mysql相关配置|(D:\sonar\sonarqube-7.7\conf\sonar.properties)
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=用户名 // 刚刚创建的sonarQube用户
sonar.jdbc.password=密码 // 创建用户对应的密码
sonar.sorceEncoding=UTF-8 // 设置编码格式为UTF-8
2.3 重新启动服务端
1. 退出 SonarQube 服务端
在之前弹出的cmd窗口执行ctrl + c,
弹出来的提示选择Y,退出SonarQube服务
2. 双击StartSonar.bat文件, 重新启动SonarQube
这次因为要进行数据库的初始化操作,所以需要的时间可能稍微久一点
3. 启动成功后,浏览器输入 : http://localhost:9000 进入界面
4. 登录
点击界面右上角的登录按钮, 进行登录 :
初始的账户名 : admin
初始的密码 : admin
如上 , SonarQube的安装已经OK!
附 : 一些关键配置的修改,如 主机地址,context,端口号等:
通常情况下使用默认的配置即可!
文件 /conf/sonar.properties
#sonar.web.host=0.0.0.0
#sonar.web.context=
#sonar.web.port=9000
三. 使用
3.1. 安装必要的插件 (汉化包)
汉化包:sonar-l10n-zh-plugin-1.27.jar放到D:\sonar\sonarqube-7.7\extensions\plugins路径下即可
安装成功后, 重启 SonarQube !
https://blog.csdn.net/huo108/article/details/81160624
四.常见问题
问题1:sonar-scanner -version 不能成功,这个环境变量配置好了之后需要重启电脑。
问题2:分析项目出现:Failed to upload report - 500: An error has occurred. Please contact your administrator
需要在sql 运行下面 命令:
set global max_allowed_packet = 2*1024*1024*10 不要忘记 commit
重启数据库 show VARIABLES like ‘%max_allowed_packet%’; 查下是不是变大了,具体为什么这样做 大家可以看web.log
问题3 分析项目:Please provide compiled classes of your project with sonar.java.binaries property
出现这个错误,就是我们要在目录下 加bin 文件夹。