前文目录
Sonar Qube介绍
Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。
Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统提供的UI界面上显示出来
Sonar Qube环境搭建
Sonar Qube安装
Sonar Qube在7.9版本中已经放弃了对MySQL的支持,并且建议在商业环境中采用PostgreSQL,那么安装Sonar Qube时需要依赖PostgreSQL。
并且这里会安装Sonar Qube的长期支持版本8.9
- 拉取镜像
|
|
编写docker-compose.yml
|
|
启动容器
|
|
需要设置sysctl.conf文件信息
设置vm.max_map_count
并执行命令刷新
|
|
重新启动需要一定时间启动,可以可以查看容器日志,看到如下内容代表启动成功
容器日志
访问Sonar Qube首页
还需要重新设置一次密码
Sonar Qube首页
安装中文插件
安装成功后需要重启,安装失败重新点击install重装即可。
安装成功后,会查看到重启按钮,点击即可
重启后查看效果
Sonar Qube基本使用
Sonar Qube的使用方式很多,Maven可以整合,也可以采用sonar-scanner的方式,再查看Sonar Qube的检测效果
Maven实现代码检测
- 修改Maven的settings.xml文件配置Sonar Qube信息
|
|
在代码位置执行命令:mvn sonar:sonar
查看Sonar Qube界面检测结果
Sonar-scanner实现代码检测
-
下载Sonar-scanner:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/
下载4.6.x版本即可,要求Linux版本
-
解压并配置sonar服务端信息
-
由于是zip压缩包,需要安装unzip解压插件
-
|
|
解压压缩包
|
|
配置sonarQube服务端地址,修改conf下的sonar-scanner.properties
执行命令检测代码
|
|
查看日志信息
查看SonarQube界面检测结果
Jenkins集成Sonar Qube
Jenkins继承Sonar Qube实现代码扫描需要先下载整合插件
Jenkins安装插件
Jenkins配置Sonar Qube
开启Sonar Qube权限验证
获取Sonar Qube的令牌
配置Jenkins的Sonar Qube信息
配置Sonar-scanner
- 将Sonar-scaner添加到Jenkins数据卷中并配置全局配置
配置任务的Sonar-scanner
|
|
构建任务
已经上传镜像包
注意:我这里代码编译这一块,缺少那个 切换分支编译,如果有需要,需要自己配置