SonarQube搭建静态代码扫描系统

一、背景

为了进行测试左移,提前发现Bug,降低bug修复成本,于是引入静态代码扫描方案,下文是一些个人实践详情,仅供参考

二、安装JDK

官方下载JDK17:https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
Mac上Java安装默认路径为:/Library/Java/JavaVirtualMachines/
配置环境变量,在文件中~/.bash_profile,添加以下内容

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$JMETER_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export JAVA_HOME
export PATH
export CLASSPATH

使配置立即生效:
source .bash_profile

三、安装 SonarQube

对JDK版本有要求,最好Java 17
在这里插入图片描述
官方下载:https://www.sonarsource.com/products/sonarqube/downloads/

启动、停止
下载 zip 文件后解压,进入sonarqube-10.2.1.78527/bin/macosx-universal-64 目录
执行:sh sonar.sh start
访问:http://localhost:9000/

能打开⻚面说明启动成功。
默认账号为admin,密码为admin。
进入后需要强制修改密码,admin的密码修改为 cww123456
在这里插入图片描述
创建项目
在这里插入图片描述
创建一个令牌
在这里插入图片描述

分析你的项目,选择其他,选择你的电脑的系统,本文选择macOS,然后在你的项目目录下执行如下命令
在这里插入图片描述

sonar-scanner \
  -Dsonar.projectKey=test001 \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.token=sqp_ea0124c7bc0a20aef20f93bd949a2bd1b7774bb1

四、配置PostgreSQL数据库

1、页面提示配置自己的数据库:
在这里插入图片描述
2、安装 PostgreSQL
1、brew安装PostgreSQL

brew install postgresql

2、启动及停止

brew services start postgresql@14
brew services restart postgresql@14
brew services stop postgresql@14

登录PostgreSQL
和MySQL不同,初始安装PostgreSQL之后,默认是使用postgre用户登录,且不需要密码,直接就能登录,命令如下:

psql postgres

退出命令行:
\q

和MySQL稍许不同,如果在Shell里面查看数据库、表及用户等信息,不是简单的select操作,PostgreSQL提供部分别的命令。
列出数据库中所有用户:
\du

列出所有数据库:
\l

连接到数据库:
\c database_name

列出数据库中的所有表:
\d

3、创建一个数据库新用户,创建属于该用户的数据库

CREATE USER sonarqube WITH PASSWORD 'sonarqube';
CREATE DATABASE sonar OWNER sonarqube;

4、去 sonarqube/conf 目录下编辑 sonar.properties ,将数据库相应配置配置完成
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:postgresql://localhost/sonar

5、编辑完成后在 sonarqube/bin/macosx-universal-64/ 目录下执行,此时警告已经消除了。
sh sonar.sh restart

五、安装插件

1、给sonar⻚面汉化
方式1:
进入Administration>Marketplace页面,
点击I understand the risk之后
就可以搜索 Chinese 来进行安装
安装成功后直接Restart, 刷新就可以变成中文版本了
在这里插入图片描述
在这里插入图片描述

方式2:
1、下载汉化包:https://github.com/xuhuisheng/sonar-l10n-zh/releasesz
2、注意,汉化包和版本和sonar版本一定要匹配,汉化包⻚面有写清楚
3、放到 /extensions/plugins 目录下。重启sonarqube服务,就可以看到汉化后的界面

六、sonar-scanner扫描器

安装sonar-scanner扫描器
根据提示,下载SonarScanner,地址:https://docs.sonarsource.com/sonarqube/10.2/analyzing-source-code/scanners/sonarscanner/
在这里插入图片描述
下载后解压拷贝到 /usr/local/ 目录下,设置环境变量,不然会提示找不到相关命令

export SONAR_SCANNER_HOME=/usr/local/sonar-scanner-5.0.1.3006-macosx
export PATH=$PATH:$SONAR_SCANNER_HOME/bin

完成上述步骤后,记得执行命令,让配置立即生效
source ~/.bash_profile

检查sonar-scanner 是否安装成功

sonar-scanner -v
INFO: Scanner configuration file: /usr/local/sonar-scanner-5.0.1.3006-macosx/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 5.0.1.3006
INFO: Java 17.0.7 Eclipse Adoptium (64-bit)
INFO: Mac OS X 12.2 x86_64

使用sonar-scanner扫描器
修改sonar-scanner文件夹下的 conf/sonar-scanner.properties配置文件,打开以下两行代码注释,后保存

#----- Default SonarQube server
sonar.host.url=http://localhost:9000
#----- Default source code encoding
sonar.sourceEncoding=UTF-8

进入到项目,执行以下命令:

sonar-scanner \
  -Dsonar.projectKey=test001 \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.token=sqp_ea0124c7bc0a20aef20f93bd949a2bd1b7774bb1

看到这个界面,就可以愉快玩耍了
在这里插入图片描述

SonarQube 初步入门已完成,高级进阶需要自己慢慢研究和体会了

结合其他工具的使用
1、基于gitlab runner+ docker 的CI/CD链路
2、基于Github + Jenkins+sonar 的链路

七、其他类似工具

DeepSource
DeepScan

八、遇到的问题

1、JDK:17,sonarqube版本:sonarqube-10.4.1.88267,命令行启动了sonar服务器,但浏览器打不开 http://localhost:9000/
原因:sonarqube版本与JDK 版本不匹配
解决办法:将sonarqube-10.4.1.88267 换成sonarqube-10.2.1.78527 版本,就可以正常访问

sonarqube-10.2.1.78527下载地址

九、参考文档

记一次sonaQuber本地搭建体验过程

代码质量检测神器–SonarQube 在MacOS上搭建本地环境

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值