SonarQube 平台搭建
1. 前期准备
① 环境
jdk 1.8 配置(见其他随笔)
MySQL 5.7(见其他随笔)
② 工具下载
sonarqube 下载 <链接:https://pan.baidu.com/s/1pDMgIDnXccDi305WHDWfJQ 密码:8w0n>
SonarQube+Scanner下载 <链接:https://pan.baidu.com/s/1xWJtYOIFQSA4WMzHrr5j-Q 密码:68mm>
2. 安装
① sonarqube解压到指定文件夹 <D:\sonarqube-7.3>
② 启动StartSonar(对应win 64bit)
打开D:\sonar\sonarqube-5.3\sonarqube-5.3\bin\windows-x86-64\StartSonar.bat
③ 启动浏览器,访问http://localhost:9000,如出现下图则表示安装成功。
3. 配置
① MySQL中,新建数据库prsonar
1 CREATE DATABASE prsonar;
② 创建 test 用户并进行授权
1 CREATE USER 'test'@'localhost' IDENTIFIED BY '123456'; // 创建用户并设置密码 2 // username 为创建的用户名 3 host为对应的主机地址,本地就是localhost 4 password为设置的密码 5 6 GRANT ALL ON *.* TO 'test'@'localhost'; //对用户进行授权操作
③ 修改SonarQube配置文件,添加Mysql相关配置
1 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false 2 sonar.jdbc.username=test // 刚刚创建的sonarQube用户 3 sonar.jdbc.password=123456 // 创建用户对应的密码 4 sonar.sorceEncoding=UTF-8 // 设置编码格式为UTF-8
4. 重新启动sonar服务
① 双击StartSonar.bat文件,重新启动【配置mysql 启动时间会比较久】
② 浏览器打开 http://localhost:9000
③ 登陆
初始用户名:admin
初始密码:admin
如下图,登陆成功
5. 使用
① 中文插件安装
github地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh
选择对应版本下载后,放置到<D:\sonarqube-7.3\extensions\plugins> 路径下,重启sonar 即可。
中文显示sonar,但还是不推荐,有些翻译的并不标准
② maven的集成
修改 maven <D:\apache-maven-3.5.4\conf\settings.xml>
1 <settings> 2 <pluginGroups> 3 <pluginGroup>org.sonarsource.scanner.maven</pluginGroup> 4 </pluginGroups> 5 <profiles> 6 <profile> 7 <id>sonar</id> 8 <activation> 9 <activeByDefault>true</activeByDefault> 10 </activation> 11 <properties> 12 <!-- Optional URL to server. Default value is http://localhost:9000 --> 13 <sonar.host.url> 14 http://loaclhost:9000 15 </sonar.host.url> 16 </properties> 17 </profile> 18 </profiles> 19 </settings>
20 <!--其中sonar.host.url 值就是 上文启动的sonar 服务器地址。-->
③ build 项目代码 - 代码扫描
maven项目中pom.xml目录下,执行
1 mvn clean install sonar:sonar
扫描会有一段时间 【maven 仓库的地址:C:\Users\用户名\.m2\repository】
④ 查看扫描结果显示
显示BUILD SUCCESS 执行成功。
6. 结果分析
① <http://localhost:9000/projects> 查看project显示
② 查看问题显示,根据问题描述,进行代码优化
PS:扫描规则的配置:
Rules(代码规则)中,language(语言)下选择java或其他语言,规则可以选择性的关闭或者激活。
---------------------------------------------------------------------------------*************分界线*************----------------------------------------------------------------------
问题汇总:
1. 问题描述:
双击StartSonar.bat后,控制台打开后,自动关闭,无法启动成功,sonar.log 报错“Error: missing `server' JVM at `D:\jre1.8.0_144\bin\server\jvm.dll'.”
解决办法:
修改PATH变量,直接将<%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;>放到PATH变量的最前面,重新打开后,问题解决。
2. 问题描述:
双击<StartSonar.bat> 提示“另一程序正在使用此文件”
解决办法:
由于之前启动的sonar进程未关闭,有冲突;打开资源管理器(ctrl+shift+esc),杀掉java进程重新启动,问题解决。
3. 问题描述:双击<StartSonar.bat> ,dos窗口启动之后闪退
sonar.log “exception caught on transport layer [[id: 0x6b97e495, L:/127.0.0.1:49426 - R:/127.0.0.1:9001]], closing connectionjava.io.IOException: 远程主机强迫关闭了一个现有的连接。”
web.log 如下:
解决办法:
由于配置文件中,数据库名称忘记修改了,实际应该为prsonar
4. 问题描述:
执行sonar,控制台报错:
“[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on project yyt-uiautotest: There are test failures.
解决办法:
初步断定是与pom.xml中配置信息有关,换其他工程,问题解决。
posted on 2018-09-06 11:04 SH-xuliang 阅读(1034) 评论(0) 编辑 收藏 举报