SonarQube系列一、Linux安装与部署

随着项目团队规模日益壮大,项目代码量也越来越多。且不说团队成员编码水平层次不齐,即便是老手,也难免因为代码量的增加和任务的繁重而忽略代码的质量,最终的问题便是bug的增多和代码债务的堆积。因此,代码review便日益提上了日程。当然人工review的效率还是相当低下的,于是我们采用了自动化代码review的工具,便是今天的主角:SonarQube。

本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目。目录如下:

  1. SonarQube系列一、Linux安装与部署
  2. SonarQube系列二、分析dotnet core/C#代码
  3. SonarQube系列三、Jenkins集成SonarQube(dotnetcore篇)

【SonarQube简介】

SonarQube系列一、Linux安装与部署

SonarQube® 是一种自动代码审查工具,用于检测代码中的错误,漏洞和多余的代码。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。比如:

  1. SonarQube集成 gitlab,在分支推送的时候自动进行代码检查分析,生成代码报告。
  2. SonarQube集成 jenkins,在代码构建的时候自动进行代码分析,生成代码报告。

总之,SonarQube是可以配合一切好用的CI/CD工具进行自动化分析代码并生成代码报告,通过报告我们可以看到代码中可能存在的bug和代码债务。

官方网站:https://www.sonarqube.org/

【SonarQube安装】

打开官网(以上官网地址),可以很容易地看到官方文件的菜单。安装步骤在官方网站上非常清楚。我们参考有关安装的文档。这里记录了整个安装过程,以帮助一些被文献迷惑的学者。

[En]

Open the official website (the above official website address), you can easily see the menu of the official documents. The installation steps are very clear on the official website. We refer to the documentation for installation. The whole installation process is recorded here to help some scholars who are confused by the documents.

官方文档地址:https://docs.sonarqube.org/latest/

SonarQube系列一、Linux安装与部署

1.首先别忙着下载

左侧有下拉框可以选择sonarqube的各个版本,我们可以选择切换不同的版本以查看不同时期的文档

SonarQube系列一、Linux安装与部署

我们首先打开 Requirements ,查看当前版本的软硬件支持。

  • SonarQube 依赖于Java 环境,也就是需要安装Jre,在这里写了支持的版本:

SonarQube系列一、Linux安装与部署
  • SonarQube 支持的数据库有:PostgreSQLMicrosoft SQL ServerOracle,注意7.9版本已经不对MySql进行官方的支持了,如果执意要用 Mysql 可能会遇到很多坑(我就被坑的不轻)。当然有的朋友想用Mysql数据库,那么可以选择安装 7.7 以下版本(包括7.7)。
  • SonarQube 运行需要ES(ElasticSearch),当然这个不用我们安装,下载的安装包已经包含了ES。

因为我用到了Mysql数据库,综合软硬件说明我选择了7.6版本的SonarQube进行下载安装。

2.下载 SonarQube

同样在左侧菜单找到 Setup and Upgrade 选项,打开以后按步骤找到 Download 链接,下载对应版本的安装包。

SonarQube 的安装包是不分平台的,默认把所有平台的运行命令都下载下来,使用者根据不同环境运行不同的运行脚本。

下载完成后,我们把安装包 sonarqube-7.6.zip 放在linux服务器的安装目录(喜欢的任意位置),然后用解压命令解压

unzip sonarqube-7.6.zip

进入文件夹,我们了解几个重要的目录

SonarQube系列一、Linux安装与部署
  • bin目录存放了各个环境的启动脚本
  • conf目录存放着sonarqube的配置文件
  • logs目录存放着启动和运行时的日志文件

3.配置 SonarQube

关于jdk的安装这里就不多说了,我们直接进入sonarqube 的配置。

我们首先需要通过配置文件修改 sonarqube 的 mysql 连接字符串等信息,打开 conf 目录的 sonar.properties

SonarQube系列一、Linux安装与部署

我们只需要修改mysql部分就ok了,其他不用过多设置

SonarQube系列一、Linux安装与部署
#----- DEPRECATED
#----- MySQL >=5.6 && ;

这里的配置是按照官方文档的介绍,在mysql添加了一个 sonarqube 的用户,并且创建了一个数据库叫 sonarqube ,且将数据库的读写执行权限赋给 sonarqube用户,用于在站点初始化以及后续存储设置数据时对数据库进行修改。

sonarqube web 默认端口号为 9000 如果想修改成其他端口可以通过下面这个设置修改其他端口号。

SonarQube系列一、Linux安装与部署

wrapper.conf 这个配置文件里配置了java命令地址,sonarqube 的日志文件目录等,可以关注下自己的 java 命令路径,其他不用太过关注。

4.SonarQube 启动

打开 sonarqube 的下载目录的bin目录,里面列举了各个平台的启动脚本

SonarQube系列一、Linux安装与部署

启动之前先使用 chown 命令将sonarqube-7.6及其子目录授权给一个非root的用户,sonarqube及其es等软件禁止 root账户启动,因此需要切换一个非root账户,授权的用户需要有bin目录及其子目录的读取和可执行的权限。

然后我们找到对应平台的脚本,我的系统是64位的linux,进入 linux-x86-64目录

SonarQube系列一、Linux安装与部署

启动sonar,执行 sonar.sh 脚本,并添加 start 参数

./sonar.sh  start

如果不添加参数,会出现如下提示,是因为该脚本有必要的参数,包含了sonar服务的启动/停止/重启/dump等操作,可以根据使用场景提供不同的参数。

SonarQube系列一、Linux安装与部署

启动之后,我们浏览器访问对应服务器ip地址的9000端口(防火墙要提前放行9000端口)

如果没有成功,那么就在logs目录查看启动日志。一般有几种:

  • es.log es或mysql等数据库连接报错,一般是mysql的连接字符串账号密码错误或者sonar账号权限不够;
  • es.log 数据库初始化失败 MySQL sonar 账户权限不足
  • sonar.log sonar服务的启动日志
  • web.log sonarqube web的启动日志

如果一切顺利的话,就会进入登陆页面,账号密码都是 admin。

SonarQube系列一、Linux安装与部署

【SonarQube插件】

我自己用的插件不多,所以如果你不喜欢英文界面,那就先安装一个中文插件。

[En]

I don’t use many plug-ins myself, so if you don’t like the English interface, install a Chinese plug-in first.

在顶部的菜单栏,配置里面,按下图步骤,在下面插件搜索栏输入chinese,即可搜到中文插件,然后点安装。

等待安装完毕,提示重启sonar后,便自动切换到了中文界面。

SonarQube系列一、Linux安装与部署

Original: https://www.cnblogs.com/Jeremy2001/p/11750380.html
Author: jeremy1888
Title: SonarQube系列一、Linux安装与部署

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/10282/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总