文章目录
- 一、准备工作
- SonarQube介绍
- 安装所需环境
- 二、安装配置
- mysql的安装与配置
- sonarqube 7.8的安装与配置
- 三、sonarqube扫描代码
一、准备工作
SonarQube介绍
- SonarQube是一个用于管理代码质量的开放平台可以快速的定位代码中潜在的或者明显的错误。目前支持java, C#,C/C++, Python,PL/SQL,Cobol, JavaScrip, Groovy等二十几种编程语言的代码质量管理与检测。集成jenkins和DevOps进行CI/CD工作。
- 七个维度检测代码质量
- 复杂度分布:代码复杂度过高将难以理解
- 重复代码:程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方
- 单元测试统计:统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况
- 代码规则检查:通过Findbugs,PMD,CheckStyle等检查代码是否符合规范
- 注释率:若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读
- 潜在的Bug:通过Findbugs,PMD,CheckStyle等检测潜在的bug
- 结构与设计:找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度
安装所需环境
因为sonarqube7.9以后的版本不支持mysql,所以我这里下了sonarqube 7.8
- mysql 5.7
- sonarqube 7.8
- jdk 8
二、安装配置
mysql的安装与配置
- 解压后如下图所示
- 原始文件是没有 my.ini 和 data 文件的,data 文件夹是我们之后初始化操作产生的。my.ini 需要我们新建一个,写入下面内容,其中,port 是 MySQL 端口号,我的 MySQL8.0 版本端口号是 3306,为了避免产生冲突,所以我设置了 3307,basedir 和 datadir 设置成你自己的安装路径,其他不需要改。
[mysqld]
port = 3307
basedir=D:/Software/mysql-5.7.26-winx64
datadir=D:/Software/mysql-5.7.26-winx64data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=utf8
- 以管理员的身份运行 cmd,进入到你的 MySQL 安装路径。
执行下面语句
mysqld install mysql2 --default-file="D:\Software\mysql-5.7.26-winx64\my.ini"
//安装成功后会出现:Service successfully installed
// 然后初始化数据库:
mysqld --initialize
//初始化之后你就能在 MySQL 安装目录看到 data 文件夹了。
注意,如果出现下面报错
缺少微软常用VC运行库,下载即可:下载地址 安装完成后,再重新运行命令即可
- 使用win+R,在出现的对话框中输入 regedit 回车,然后进入目录 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql2,可以看到如下图的内容,双击 ImagePath,在出现的对话框中将数值数据改成你自己的安装路径。
D:\Software\mysql-5.7.26-winx64\bin\mysqld mysql2
5. 现在,我们就可以运行新版本的 MySQL 了!
net start mysql2
//启动成功之后就可以使用命令
mysql -P3307 -uroot -p
//临时密码去 data/xxx.err 文件
- 设置初始密码
set password for root@localhost=password("12345");//此处密码是12345
7. 进行相关的snoar的配置
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
sonarqube 7.8的安装与配置
- 将sonarqube 7.8.zip解压后,如下图所示
- 进入conf文件夹,打开sonar.properties,将相关注释去掉,如下图所示
//修改内容如下
# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092
#----- DEPRECATED
#----- MySQL >=5.6 && <8.0
# Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
# 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:3307/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
3. 启动sonar,并访问localhost:9000
可能启动过程比较慢,耐心等待。。。
4. 登录
初始用户名为:admin
初始密码为:admin
5. 登录成功后就可以看到首页了,创建一个工程
三、sonarqube扫描代码
配置好SonarQube以及插件SonarLint后,扫描整个项目。