sonarqube 代码质量分析

目录

    • linux下的安装部署
      • 版本选择
      • 下载安装
        • 下载
        • 配置
        • SonarQube 启动
      • SonarQube汉化
    • `SonarQube`扫描`maven`项目进行代码质量分析
      • maven项目的扫描配置
    • 扫描结果分析
    • 整合gitlab

linux下的安装部署

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

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

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

版本选择

https://docs.sonarqube.org/7.6/project-administration/project-existence/
左侧有下拉框可以选择sonarqube的各个版本,我们可以选择切换不同的版本以查看不同时期的文档:
在这里插入图片描述
我们首先打开 Requirements ,查看当前版本的软硬件支持。
在这里插入图片描述
SonarQube 支持的数据库有:PostgreSQL,Microsoft SQL Server,Oracle,注意7.9版本已经不对MySql进行官方的支持了,如果执意要用 Mysql 可能会遇到很多坑(我就被坑的不轻)。当然有的朋友想用Mysql数据库,那么可以选择安装 7.7 以下版本(包括7.7)。
SonarQube 运行需要ES(ElasticSearch),当然这个不用我们安装,下载的安装包已经包含了ES
因为我用到了Mysql数据库,综合软硬件说明我选择了7.6版本的SonarQube进行下载安装。

下载安装

下载

官网下载:选择想要的版本

https://www.sonarqube.org/downloads/

在这里插入图片描述
SonarQube 的安装包是不分平台的,默认把所有平台的运行命令都下载下来,使用者根据不同环境运行不同的运行脚本。

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

unzip sonarqube-7.6.zip

进入文件夹,我们了解几个重要的目录
在这里插入图片描述

  • bin目录存放了各个环境的启动脚本
  • conf目录存放着sonarqube的配置文件
  • logs目录存放着启动和运行时的日志文件
配置

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

我们首先需要通过配置文件修改 sonarqubemysql 连接字符串等信息,打开 conf 目录的 sonar.properties
我们只需要修改mysql部分就ok了,其他不用过多设置:

sonar.jdbc.url=jdbc:mysql://ip:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.web.port=9000

创建了一个数据库叫 sonar
sonarqube web 默认端口号为 9000

SonarQube 启动

打开 sonarqube 的下载目录的bin目录,里面列举了各个平台的启动脚本
在这里插入图片描述
sonarqube及其es等软件禁止 root账户启动,因此需要切换一个非root账户,授权的用户需要有bin目录及其子目录的读取和可执行的权限。
1.创建用户sonaruseradd sonar
2.创建组sonargroupgroupadd sonargroup
3.将用户添加到组:usermod -a -G sonargroup sonar
4.将sonarqube-7.6目录下的所有文件与子目录的拥有者皆设为sonar,群体的使用者sonargroupchown -R sonar:sonargroup sonarqube-7.6

然后我们找到对应平台的脚本,我的系统是64位的linux,进入 linux-x86-64 目录
在这里插入图片描述
启动sonar,执行 sonar.sh 脚本,并添加 start 参数

./sonar.sh  start

其他参数:status 可以用来查看是否启动成功
在这里插入图片描述
启动之后,我们浏览器访问对应服务器ip地址的9000端口(防火墙要提前放行9000端口)

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

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

如果一切顺利的话,就会进入登陆页面,账号密码都是 admin
在这里插入图片描述

SonarQube汉化

关于插件我本身使用不多,如果看不惯英文界面,那么就先装个中文插件吧。
在顶部的菜单栏,配置里面,按下图步骤,在下面插件搜索栏输入chinese,即可搜到中文插件,然后点安装。
等待安装完毕,提示重启sonar后,便自动切换到了中文界面。
在这里插入图片描述
但是,如果这种方式不好使的话。
可以到https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases下载汉化包:
在这里插入图片描述
把下载好的汉化包放到:/usr/local/sonar/sonarqube-7.6/extensions/plugins 目录下,重启就行了。

SonarQube扫描maven项目进行代码质量分析

从官网可以看到,SonarQube支持以下方式来进行项目的扫描;
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
1、直接使用SonarQube scanner即扫描仪来进行分析
2、使用SonarQube扫描仪分析Maven
3、使用SonarQube扫描仪分析Gradle
4、使用SonarQube扫描仪分析ant
5、使用SonarQube扫描仪分析Jenkins
6、使用SonarQube扫描仪分析MSBuild(比较少见)
7、使用SonarQube扫描仪分析VSTS-TFS(比较少见)

maven项目的扫描配置

settings文件:

org.sonarsource.scanner.maven
sonartruehttp://ip:9000

在这里插入图片描述
在项目根目录下执行:mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar --settings G:\.m2\settings-sxw.xml

出现:Unable to execute SonarQube: Fail to download libraries from server,sonar-maven-plugin版本可能过低,例如,sonarqube-8.4.2.36762,需要sonar-maven-plugin:3.7.0.1746

注意这里我的settings文件是改过了名字的,所以才要重新指定。
BUILD SUCCESS成功之后。
回到web界面:
在这里插入图片描述
在这里插入图片描述
项目分析完后(项目大会很久很久的。。)
在这里插入图片描述

扫描结果分析

https://www.jianshu.com/p/304b0ebdc9a3

整合gitlab

https://blog.csdn.net/weixin_30375785/article/details/90515987
https://blog.csdn.net/zyc88888/article/details/79428119


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部