代码规范审查工具SonarQube使用和搭建步骤

安装步骤

安装和配置:

1.官网最新版压缩包:
在这里插入图片描述
解压缩后:
在这里插入图片描述

2.配置

在这里插入图片描述

sonar.web.host=0.0.0.0
sonar.web.port=19800

SonarQube可使用内嵌数据库或外部数据库,如果外部数据库需要添加数据源和驱动

sonar.jdbc.username=mysql
sonar.jdbc.password=mysql
sonar.jdbc.url=jdbc:mysql://ip:3306/mysql?useUnicode=true&characterEncoding=utf8&useSSL=false

在这里插入图片描述
如果使用内置数据库,配置好内置数据库端口即可:

#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
sonar.embeddedDatabase.port=9092

3.环境配置
最新版本Sonar需要Java11,请提前配置JAVA_HOME

set JAVA_HOME=C:\Program Files\Java\jdk11.0.4
set PATH=%JAVA_HOME%/bin;%PATH%
启动登陆:

1.启动Sonar
sonarqube-7.9.1\bin\windows-x86-64目录下启动StartSonar.bat。
为方便查看日志输出,建议在cmd中启动。
启动后暂时不要关闭,保持运行状态,后续扫描需要连接。
2.登陆
浏览器打开:localhost:19800
初始用户:admin/admin
JavaScript扫描支持
如果需要扫描Javascript文件,需要安装Node.js。

使用方法

SonarQube支持包括上传代码或集成ant、gradle、maven等编译工具等多种方式进行代码扫描。因为我们的项目多数使用Maven管理,这里介绍使用Maven的方式进行代码扫描。

编辑MAVEN配置文件

在这里插入图片描述
添加如下pluginGroup和Profile(请自行调整顺序位置):

<pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
    <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
</activation>
 		 	<properties>
                <sonar.host.url>
                  http://localhost:19800
                </sonar.host.url>
            </properties>
        </profile>
</profiles>
在工程中执行扫描

工程中执行扫描,只需要Eclipse中新建一个Maven build即可,如下所示:
在这里插入图片描述
org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.1.1688:sonar
注意对于新版本Sonar使用3.6.1.1688插件,插件对应版本号请参见:
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/
如果工程本身收Git或SVN等版本控制需要额外安装相关插件,详见:
https://docs.sonarqube.org/latest/analysis/scm-integration/

扫描结果:

1. 控制台输出
扫描完成后,Maven会打印和其他Maven操作类似的输出,如下所示:
在这里插入图片描述
之后可以登陆SonarQube主页(http://localhost:19800)进行查看:
2.查看代码报告
扫描完成后,登陆页面可以看到扫描的结果报告:
在这里插入图片描述

其他说明

版本管理

在不使用外部SCM工具的情况下,SonarQube依然提供版本管理功能,支持统一版本号多次扫描结果保存和不同版本号的管理,如下图所示:
在这里插入图片描述

严重性级别解释

根据之前的经验,目前存在些许误报的情况,并且轻微级别的问题大多可以忽视。官网对于级别的定义如下:
在这里插入图片描述
在这里插入图片描述
需要注意的是,根据如上说明,Major影响比Critical更大,但是发生概率较低,Critical发生概率大。所以除了Minor其他问题都应该视为必须要修改的问题。

问题处理建议

经过实践,发现现存代码扫描出的问题较多,所以提出以下处理建议:
1.所有类型的Blocker级别都应该优先分析处理;
2.Reliability Bugs和安全性Vulnerability的Critical和Major级别都应该分析处理;
3.所有的Minor级别、可维护性条目以及代码冗余在已上线项目中重暂缓处理,在新项目中尽量减少。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值