安装步骤
安装和配置:
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
扫描结果:
1. 控制台输出
扫描完成后,Maven会打印和其他Maven操作类似的输出,如下所示:
之后可以登陆SonarQube主页(http://localhost:19800)进行查看:
2.查看代码报告
扫描完成后,登陆页面可以看到扫描的结果报告:
其他说明
版本管理
在不使用外部SCM工具的情况下,SonarQube依然提供版本管理功能,支持统一版本号多次扫描结果保存和不同版本号的管理,如下图所示:
严重性级别解释
根据之前的经验,目前存在些许误报的情况,并且轻微级别的问题大多可以忽视。官网对于级别的定义如下:
需要注意的是,根据如上说明,Major影响比Critical更大,但是发生概率较低,Critical发生概率大。所以除了Minor其他问题都应该视为必须要修改的问题。
问题处理建议
经过实践,发现现存代码扫描出的问题较多,所以提出以下处理建议:
1.所有类型的Blocker级别都应该优先分析处理;
2.Reliability Bugs和安全性Vulnerability的Critical和Major级别都应该分析处理;
3.所有的Minor级别、可维护性条目以及代码冗余在已上线项目中重暂缓处理,在新项目中尽量减少。