Sonarqube配置问题

Posted 咸甜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sonarqube配置问题相关的知识,希望对你有一定的参考价值。

本文提供一些我在安装Sonarqube过程中遇到的一些问题的解决方案,如果想对sonar或具体的配置过程有更多的了解,请参考这篇文章。

Sonar系列之SonarQube简介(一) - 灵风牧师 - 博客园 (cnblogs.com)https://www.cnblogs.com/lfpriest/p/13366171.html

首先需要确定下你的mysql版本和sonarqube版本。sonarqube在7.8版本之后不再支持mysql,所以如果需要使用mysql请下载7.8及之前的版本。sonarqube仅支持5.6-8.0版本的mysql,如果你的版本错误,需要删除现有的mysql选择合适的版本。

删除mysql参考此博文:

(39条消息) mysql完全卸载教程(图文详细)_Of_the的博客-CSDN博客_卸载mysqlhttps://blog.csdn.net/qq_41140741/article/details/81489531

需要补充的是,如果你自定义了mysql的安装位置,仅需删除你自定义的安装目录。此外,你还需要在环境变量中删除mysql_home与path中的mysql位置语句,不然命令行中仍然视为你已经安装mysql服务。

各目录作用:

 bin
该目录存放了各个系统的 SonarQube 的启动脚本,目前支持的系统有 Linux(32位/64位),Mac(32位),Windows(32/64位),这些脚本都使用了 Java Service Wrapper (jsw:可用于将Java后台程序包装成一个后台服务运行。除此以外,JSW还可以在你的Java程序挂掉以后,自动帮你把服务再次拉起,相当于提供了一个守护进程的功能。)技术
conf :该目录用于存放配置文件(主要是 sonar.properties ),最常用的是数据库连接配置
data : 该目录用于存放数据,如 H2内存数据库数据,已部署的插件jar包,ES5数据等
elasticsearch : 该目录用于存放 elasticsearch 相关服务,包括不同系统的脚本
extensions : 该目录用于存放下载文件、jdbc驱动、已下载的插件等
lib : 该目录用于存放依赖库
logs : 存放各类日志信息
temp : 存放临时文件
web : 用来提供 SonarQube 网页服务

启动服务程序是bin目录下对应系统版本的startsonar.bat文件,如果启动过程失败而窗口已关闭,可以在logs目录下查看启动日志确定问题

一般数据库创建所需sql语句如下所示。

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;

若在用户授权时出现1064错误,可以改用

GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';

 但此错误应该是仅出现在mysql8.0及以上版本,如果出现此错误,检查下你的mysql版本是否合适。

如果出现“远程主机强迫关闭了一个现有的链接”问题,检查是否属于以下几种情况:

mysql版本错误

所用端口已被占用

配置信息错误

密码设置未生效

 此外,如果你需要安装中文插件,若不是最新版需要下载历史版本。启动服务后进入市场,搜索ChinesePack。搜索结果中间应有显示支持版本。若版本不符,点击右侧home进入github页面,对照下方表格选择合适的版本。 

如果你需要打印一份问题报告,可以使用下面这份插件。

sonar-pdf-plugin 发行版 - Gitee.com    

自行安装的插件jar包都放在 extensions\\plugins 下。安装插件后重启网站即可生效。pdf插件打印前需要在设置中输入用户名与密码方可使用。此插件统计出现最多的问题与出现问题最多的类及其它基础信息,不涉及具体问题信息。

如果重启服务的时候提示xxx已被占用/打开,可能是你之前开启的进程没有关闭。打开任务管理器,找到后缀名为java的进程,关掉,重新启动。有时候任务管理器不会显示进程,需要等到再次开启程序才显示,结束进程后使用。或者直接重启电脑。。。重启电脑后如果取消了mysql自动启动服务,需要重新启动下mysql。

以上是关于Sonarqube配置问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Jenkins 上配置 SonarQube

SonarQube 5.6 恢复质量配置文件

在 SonarQube 中配置 gradle 项目

如何在 AWS elasticbeanstalk 中配置 sonarqube 7.1

如何在 Jenkins 中为 sonarqube 配置 TSLint 插件?

由于找不到分析配置文件,SonarQube 分析无法完成