centos8环境下手把手教你搭建sonarqube服务

本文详细记录了在CentOS8环境中配置SonarQube 7.6的过程,包括环境准备、JDK设置、数据库连接、elasticsearch配置、用户管理、启动服务、中文包安装,以及sonar-scanner和PDF插件的部署,还分享了遇到的问题及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

作为一个低端码农,从不知道啥代码质量管理,本着学习不会吃亏的态度,搞一下sonarqube,讲实话,真的没有想到会要这么久,早知道这么久…说不定我就…也不会放弃。手动滑稽~

我看网上也有一部分人在使用,但是没有特别全的教程。各种坑…记录一下成长历程。


一、简介:

SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。 通过插件形式,可以支持众多计算机语言,比如 java, C#, go,C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等。sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具来检测你的代码,帮助你发现代码的漏洞,Bug,异味等信息。
Sonar 不仅提供了对 IDE 的支持,可以在 EclipseIntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

总结:主要用来帮我们检测代码中的bug

二、基本配置环境

1. SonarQube

经过多次尝试后选择版本sonarqube-7.6,如果非要说原因,两个:

  1. 这是最后一个支持mysql的版本
  2. 我可以找到支持pdf导出的插件

顺便说一句,SonarQube服务是在centos8环境下搭建的。(可以简单理解为服务端)

sonarqube-7.6网盘下载地址
提取码:uihs

2. JDK

sonarqube-7.6要求jdk最低版本1.8,后期jdk路径需要手动配置,具体情况后文详述。

3. 数据库mysql

在这里插入图片描述
根据上图可以看出要求数据库mysql5.6-8.0,当然其他数据库也可以,比如postgresql,但是小弟不会~~
上面文件在解压后的conf/sonar.properties文件中。
mysql网盘下载地址
提取码:oovy

4. sonar-scanner

可以简单理解为soanrqube的客户端,用来执行请求的。本文使用sonar-scanner-3.3.0.1492-windows,对在windows环境搭建scanner服务。
sonar-scanner-3.3.0.1492-windows网盘下载地址
提取码:34mu

5. sonar-pdf-plugin

这个是比较关键的一步,扫描完代码以后,肯定是想要导出结果,分享给团队,所以需要这个插件,本文使用的是:sonar-pdfreport-plugin-3.0.3.jar
sonar-pdf-plugin网盘下载地址
提取码:5g5f

二、安装过程:

1. 查看当前系统版本

输入命令:lsb_release -a
得到信息如下: 在这里插入图片描述
即:linux64位系统,centos8.3.2011

2. 安装sonarqube

解压文件,命令:unzip sonarqube-8.8.0.42792.zip,即解压该文件至当前文件夹。

3. 配置sonarqube

配置sonarqube中的java版本:

cd /home/sonarqube/sonarqube-8.8.0.42792/conf/ && vim wrapper.conf

图中路径为jdk安装目录
在这里插入图片描述

4. 配置elasticsearch中的java

执行以下命令来编辑启动文件:

cd /home/sonarqube/sonarqube-8.8.0.42792/elasticsearch/bin && vim elasticsearch

防止混乱,贴出部分截图:
在这里插入图片描述

5. 新增用户

由于elasticsearch默认不能使用root启动,所以需要新增一个有权限的用户,重点在于:新增用户并且有权限
具体操作如下截图(图中版本请自动转换):
在这里插入图片描述
在这里插入图片描述

截止目前,配置基本完成。

5. 启动sonarqube

输入命令,启动sonarqube

cd /home/sonarqube/sonarqube-8.8.0.42792/bin && ./linux-x86-64/sonar.sh start

查看日志:

tail -f ../logs/sonar.log

如图所示,启动成功:
在这里插入图片描述

6. 登录

访问地址:http://IP:9000,默认账户:admin,密码:admin
在这里插入图片描述

7. 下载中文包

登录成功以后,如图(本文)所示操作,成功后重启即可:在这里插入图片描述

三、sonar-scanner

1. 配置sonar-scanner

将下载后的压缩包放在自己本地(windows环境),解压后如下所示:
在这里插入图片描述
进入文件夹内的conf目录,发现有一个sonar-scanner.properties文件,如果没有就复制以下内容进去:

#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here

#----- Default SonarQube server(配置你刚才的服务IP)
sonar.host.url=http://192.168.200.245:9000

#----- Default source code encoding
#sonar.sourceEncoding=UTF-8

配置sonar-scanner环境变量,新增变量SONAR_RUNNER_HOME
在这里插入图片描述
PATH路径上新增配置如下:
在这里插入图片描述
测试soanr-scanner环境变量是否配置成功:
打开cmd窗口,输入:sonar-scanner -v
展示如下,则配置成功:
在这里插入图片描述

2. 配置要扫描的项目

sonar扫描项目一定要在有pom的文件层级,
新建一个sonar-scanner.properties在该目录,具体内容如下:

# Token
sonar.login=admin
sonar.password=admin

# must be unique in a given SonarQube instance
sonar.projectKey=study
# this is the name displayed in the SonarQube UI
sonar.projectName=study
sonar.projectVersion=3.0
 
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set. 
# If not set, SonarQube starts looking for source code from the directory containing 
# the sonar-project.properties file.
sonar.sources=src
sonar.java.binaries=target/classes
 
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

四、上传pdf插件

将下载好的sonar-pdfreport-plugin-3.0.3.jar包上传到sonar安装目录下的/extensions/plugins文件夹下:
查看文件夹内容:
在这里插入图片描述
重启sonar服务:

./home/sonarqube/sonarqube-7.6/bin/linux-x86-64/sonar.sh restart

五、扫描项目并导出PDF

1. 扫描项目

在自己本机,打开cmd窗口,切换到要扫描项目的目录下,执行:

sonar-scanner -X

登录服务可以查看扫描结果:
在这里插入图片描述

2. 导出PDF

选择刚才扫描过项目:
在这里插入图片描述
此时,即可。

六、亲自踩过的坑

1. JDK版本下载错误:

在这里插入图片描述

2. sonarqube的JDK未配置:

在这里插入图片描述

3. 未新增用户,elasticsearch报错:

在这里插入图片描述

4. 导出PDF报错

在这里插入图片描述
解决方案:
删除原有扫描结果,重新扫描,如果还是不行,直接删除项目,再次扫描即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值