SonarQube简介
一、 SonarQube是什么?
1、代码质量和安全扫描和分析平台。
2、多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等。
3、支持25+编程语言的代码扫描和分析,包含javapythonC#javascriptgoC++等。
4、涵盖了编程语言的静态扫描规则: 代码编写规范+安全规范。
5、能够与代码编辑器、CI/CD平台集成。
6、能够与SCM集成,可以直接在平台上看到代码问题是由哪位开发人员提交。
7、帮助程序猿写出更干净、更安全的代码。
SonarQube 8.3.1安装说明(一)
找到SonarQube 8.3.1a安装程序
完成后拷贝到内网centos7上进行解压
Centos7内网安装数据库(用于存放sonar扫描结果)准备一台能上网的Centos7虚拟机
(1)安装存储库设置软件源,用于pg12包至本地
(2)创建一个文件夹用来存放后的rpm包
root用户登录后,进入想要存放rpm包的目录,执行以下命令创建pg12_rpms文件夹:
(3)rpm包,存放在pg12_rpms文件夹中(4)在内网服务器上安装好的rpm包,注意一定要按以下顺序安装
(5)初始化数据库
(6)设置pg12开机启动/启动
(7)修改tgres密码(root用户下)
(8)开启远程访问(root用户下)
(9)信任远程连接(root用户下)
(10)重启数据库
(11)在数据库中创建sonarqube所需的库、用户名、密码(root用户下)
PS:如果使用pgAdmin等工具连接数据库的话,可以可视化创建库、用户、并授权,无需执行以上命令
关于SonarQube社区版使用问题及解决方法
SonarQube项目授权问题
我们在前面解决了SonarQube扫描前的一些问题,现在开始解决授权问题。
Sonarqube的授权配置
用户首先登陆SonarQube平台(我们做了GitlabSSO/LDAP集成)
根据不同的业务组对应创建一个group
然后将用户加入到对应的group中
根据业务的简称创建对应的权限模板
将组和管理员加入权限模板中
然后将该业务的项目批量应用权限模板
SonarQube工作原理
SonarQube 并不是简单地将各种质量或覆盖率检测工具的结果(例如 CheckStyle、JACOCO 等)直接展现给客户,而是通过不同的插件算法来对结果进行再加工,并蕞终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理,以便进行有针对性的代码修复或重构。
SonarQube 在进行代码质量管理时,会从以下的七个纬度对项目代码质量进行分析