1.0 简介
SonarQube是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。通过插件形式,可以支持众多计算机语言,截止至目前,最新版本已更新至8.9;
基于上次安装的SonarQube8.8,实际运行中,公司绝大部分项目不支持运行在java11上,在同一台PC上跑项目和SonarQube相对来说比较麻烦(需要更换jdk配置或者项目运行配置),故部署SonarQube7.7,支持运行于jdk1.8上;
建议用电脑浏览器打开,效果较好。
2.0 环境
JDK环境:java1.8、SonarQube7.7工具、汉化包1.25、sonar-scanner工具(代码扫描工具)、npp编辑器、node.js、MySQL5.7、Navicat for MySQL等。
3.0 部署流程
3.1.1 JDK环境
3.1.1.1 检查当前电脑JDK环境
在电脑桌面的左下角的搜索中输入“cmd”,回车后弹出命令提示符窗口,输入java –version命令,查看当前电脑是否安装了jdk。
3.1.1.2 安装jdk
这里介绍的是免安装版的jdk1.8,解压jdk压缩包后,开始配置java环境变量,右键我的电脑,点击属性,进入系统的设置页面后,点击高级系统设置,点击环境变量,进行系统环境变量的编辑。
新建环境变量,1.变量名:JAVA_HOME,变量值:jdk解压缩地址;2.编辑变量path,新增值:jdk解压缩地址\bin。
环境变量配置完成后,进入cmd命令,输入java –version,出现下图信息,即java1.8环境配置完成。
3.1.2 数据库配置
SonarQube7.7需要连接对应的MySQL数据库,MySQL安装可以参考下方链接:
https://blog.csdn.net/qq_39052339/article/details/99765471
安装完mysql后,可验证是否安装成功,打开cmd命令,输入mysql –u root –p,输入对应的root用户的密码,登录对应的数据库中。
3.1.2.1 MySQL配置(一)
方法一:使用root登录数据库后,开始数据库配置。
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; #创建sonar数据库
CREATE USER 'sonar' IDENTIFIED BY 'sonar'; #创建sonar用户
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; #sonar设置权限
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; #给sonar设置对应的密码
FLUSH PRIVILEGES; #权限刷新
3.1.2.2 MySQL配置(二)
方法二:解压Navicat for MySQL,通过该数据库管理工具来实现相关的数据库配置:
右键本地localhost连接,新建数据库,输入数据库名称sonar,设置utf8字符集。
3.1.2.3 MySQL用户、权限配置
点击上方的用户,点击新建用户,输入用户名:sonar,主机:localhost,密码/确认密码:sonar,输入完毕后,进行保存。
接下来设置对应的权限,点击权限管理员,选择sonar数据库,进行权限添加操作,勾选sonar数据库,勾选授予右侧所有权限,勾选完毕后点击确定,完成权限配置。
3.1.3 SonarQube7.7部署汉化
3.1.3.1 配置SonarQube环境变量
解压SonarQube7.7压缩包后,开始配置环境变量,编辑变量path,新增值:SonarQube解压地址\bin。
3.1.3.2 启动SonarQube
进入解压后的bin目录,点击windows-x86-64,双击StartSonar.bat,启动服务。(① 如果期间有弹出相关的防火墙提示,选中允许即可;② 启动服务后,即使关闭运行窗口,服务仍开着,如需关闭整个服务,需要去任务管理器关闭对应进程)
启动完成后,在浏览器输入http://localhost:9000,会进入如下页面,默认账号密码均为admin。(如果提示修改密码,按照提示修改即可)
3.1.3.3 SonarQube汉化
首先要知道获取到对应SonarQube版本的汉化包,访问下方链接,https://github.com/xuhuisheng/sonar-l10n-zh,下拉页面可查看对应的版本信息。
访问下方链接,下载对应的jar包,修改链接后的1.27,可跳转至其他版本;https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.27。
关闭SonarQube服务(快捷键Ctrl+Alt+Delete,打开任务管理器,关闭对应的服务,见下图),关闭后将汉化包置于下方文件夹中,重新启动SonarQube服务,汉化完成。
3.1.3.4 配置文件修改
接下来进行SonarQube配置,打开解压目录,进入\sonarqube-7.7\conf文件夹,修改sonar.properties配置文件。(在执行该步骤前,先安装npp.7.7.1.Installer.x64.exe,便于文件的编辑,双击该文件进行安装即可)
源码如下:
#----- 连接数据库 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar? useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
#-----Default source code encoding
sonar.sorceEncoding=UTF-8
#-----SonarQube登录的账号密码
sonar.login=admin
sonar.password=admin
3.1.3.5 获取相关项目的值(用于后续Sonar-Scanner的扫描)
汉化完成后,进入对应的系统中,点击右上角的“新建项目”,输入对应的项目名称sonar-l10n-zh-master。(扫描项目源码)
设置成功后,即可创建对应的令牌,令牌的值在后续的Sonar-Scanner中相关配置会用到,包括对应的项目标识,令牌名称输入“admin”(名称自己设置),点击右侧的“创建”按钮,创建令牌完成,创建完毕后,复制下方的令牌的值,令牌值为随机生成,故本安装手册中令牌值在新的部署环境中无效,不通用。
3.1.4 Sonar-Scanner配置
3.1.4.1 配置环境变量
解压sonar-scanner压缩包,解压完成后,进行环境变量配置,新建环境变量,1.变量名:SONAR_RUNNER_HOME,变量值:sonar-scanner解压路径;2.编辑变量path,新增值:%SONAR_RUNNER_HOME\bin 或sonar-scanner解压路径\bin。
环境变量配置完成后,cmd命令,输入sonar-scanner,回车,出现下方信息后,环境变量配置完成。
3.1.4.2 Sonar-Scanner配置
接下来进行sonar-scanner配置,打开解压目录,进入\sonar-scanner\conf文件夹,修改sonar-scanner.properties配置文件。
源码如下:
#-----
SonarQube服务的链接
sonar.host.url=http://localhost:9000
#-----
SonarQube服务的令牌
sonar.login=fb1d09769aea83e6057a6e0d053f2970e69913fb(该值需替换为3.1.2.4中的admin的值)
#-----Default source code encoding
sonar.sourceEncoding=UTF-8
3.1.4.3 被测项目配置
在被测项目的根目录,添加sonar-project.properties配置文件,配置文件补充内容如下。
源码如下:
#------ 被检测项目的名称
sonar.projectKey=sonar-l10n-zh-master
sonar.projectName=sonar-l10n-zh-master
#------ 被检测源文件所在目录,.代表的是当前目录
sonar.sources=.
sonar.java.binaries=./target/classes
sonar.sourceEncoding=UTF-8
3.1.5 代码扫描
进入目标代码根目录,点击对应的路径,cmd进入定位到当前目录,具体执行步骤如下。
输入命令如下:sonar-scanner,进行当前代码扫描操作。(注意:扫描前,需要开启SonarQube服务,即双击StartSonar.bat进行启动,中途若弹出防火墙提示,允许即可)
扫描完成后,自动提交至SonarQube中对应的项目中进行后台分析,分析后,即可查看对应的报告信息,其他项目扫描也是按照这种方法。