SonarQube工具安装详解,能帮你Review代码、安全审计等质量管理

为什么今天要推荐SonarQube呢?这话题要从一次客户的项目交付说起。当时服务要部署入驻到客户方的机房,按要求向信息中心提交申请后,却被告知需提供《服务器安全漏洞扫描报告》和《代码安全审计报告》。按照惯例,这些报告一般由第三方做网络安全的公司提供,但谁知客户不想花钱找第三方公司,最后商量要我方用开源工具扫描,并修复完向他们提供报告。这如何是好,做与不做? 似乎没有选择,必须做。

开始找开源的质量管理工具。找了好多款开源质量管理工具(如:Cobra,CodeClimate等),安装部署、扫描及界面不友好、难使用等各种问题。由于本人以前在外企的工作经验,那时同事提供过来的代码检查报告,文档及内容展示等比较友好,能快速定位问题,由处理意见等,我似乎进入寻找曾经的那个“样子”,最终,SonarQube满足了需求。

SonarQube,一款用于代码质量管理的开源工具,是静态代码检查工具。可以很多开发语言,如:php,java, C#, go,C/C++, Cobol, JavaScrip, Groovy 等。

Sonar代码扫描,到底能检测什么?

检测项

描述

代码规范

通过Findbugs,PMD,CheckStyle等检查代码是否符合规范。

潜在的缺陷

可通过Findbugs,PMD,CheckStyle等代码规则检测潜在的缺陷

复杂度分布

检测文件、类、方法的复杂度分布,过高或过低的复杂度都会影响代码的可维护性‌。

重复编码

程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。

代码注释问题

若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读。

测试覆盖率

Sonar可以很方便地统计并展示单元测试覆盖率。

糟糕的设计

通过检测循环、类之间的相互依赖关系等,帮助发现设计上的问题‌。

SonarQube中的重要组件:

组件

说明

SonarScanner

扫描器,负责将源文件进行代码分析,并将分析后的报告发送给SonarQube服务器

SonarQube Server

SonarQube服务器,负责处理分析报告,后台管理等

   Database server

数据库服务器,负责存储数据

SonarQube环境搭建

这里我以我搭建的SonarQube 7.6为例,介绍安装使用的过程。

1,Java环境

SonarQube 是一个基于 Java 的应用程序,因此首先需要确保你的服务器系统上安装了 Java环境。

命令:
java -verson

这里建议使用Java11,我们的开发的Java版本,用的就是OpenJDK 11。

2,安装数据库

SonarQube 服务器支持数据库支持PostgreSQL, MySQL, Oracle等,这里我使用的是Mysql。由于SonarQube 7.6支持的MySql版本需大于等于5.6,小于8.0。导致测试服务器上的Mysql8不能直接使用,只能新安装了一个Mysql5.7,供Sonar服务使用。

关于Mysql的安装过程,这里不做描述。

3,SonarQube服务配置

本次主要是在Windows系统下的操作。

    1),下载SonarQube

首先,下载并解压SonarQube后,即可进入bin目录启动,Sonar兼容Mac、Linux、Windows系统,不同系统进入对应的目录启动即可。

    2),sonar.properties配置

打开SonarqQube安装目录,修改\conf\sonar.properties文件,指定连接的数据库、用户名、密码,不同的数据库修改对应的jdbc连接、用户名密码等。

配置信息:

sonar.jdbc.username=sonar
sonar.jdbc.password=Mysql@sonardb!
sonar.jdbc.url=jdbc:postgresql://localhost:3306/sonar?......... 

    3),启动SonarqQube服务

在 SonarQube 的根目录下,找到启动服务脚本,执行启动。Windows系统,进入...\sonarqube-7.6\bin\windows-x86-64目录,双击StartSonar.bat即可启动。

    4),访问 SonarQube Web 界面

服务启动成功后,在浏览器http://localhost:9000,默认用户名密码:admin/admin。

到这里,你就可以准备配置Sonar代码扫描啦。

4,SonarScanner 配置

下载安装Sonar-scanner-3.3.0,然后进入安装目录....\sonar-scanner-3.3.0.1492-windows\conf\,配置 sonar-scanner.properties,添加几行配置。

配置信息

sonar.host.url=http://127.0.0.1:9000
sonar.login=admin
sonar.password=admin 

配置环境变量:

  1),建SONAR_SCANNER_HOME,值:...\Sonar-Scanner\sonar-scanner-3.3.0.1492-windows

   2),PATH后加%SONAR_SCANNER_HOME%\bin;

5,SonarQube 创建项目

访问http://localhost:9000,登录SonarQube 服务,创建要分析的软件项目。

6,执行Sonar分析

配置sonar-scanner.properties 全局参数设置。

   sonar.projectKey=test   
   sonar.projectName=test
   sonar.projectVersion=1.0
   sonar.sources=src/main/java
   sonar.java.binaries=target/classes
   sonar.login=6c8148e18e76fbc96e73354

打开cmd,进入你要扫描的项目所放磁盘的根目录,执行Sonar-Scanner。

如果命令行显示以上输出,则扫描成功。

7,在SonarQube中查看结果

打开SonarQube,进入前面创建的项目,查看检查结果。

8,生成pdf报告

下载插件地址:https://gitee.com/zzulj/sonar-pdf-plugin/releases,从3.0.xfor7.0 的分支获取,将下载好的jar包放在D:\....\sonarqube-7.6\extensions\plugins,目录下:

放好后,重启startsonar.bat,重新扫描刚才的代码,进入主页,就会出现more的标签。

Sonar PDF报告样例:

关于SonarQube的代码检测分析,今天就写到这里。当然在SonarQube服务实际搭建的过程中,还会有很多的问题需要处理,这里不做一一的赘述,如果你关系或想了解更多的相关内容,可关注此公众号,在我的获取本人联系方式,进行一对一交流讨论,欢迎骚扰!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值