SonarQube介绍

SonarQube是一款开源的自动代码审查平台,可以检测25+的编程语言如 Java ,C#,JavaScript, TypeScript ,C/C++,COBOL等的代码缺陷和安全漏洞,且可以 与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查 。OWASP收录了该工具,全称为开放式Web应用程序安全项目,是一个非营利组织。

SonarQube安装
  • 官网下载链接:,下载的版本为Community Edition Version 8.7;
  • 该版本需要安装JDK11,如果JDK版本较低需要下载新版本,否则启动会失败;
  • 下载完成后解压,我的环境为windows10系统,双击bin\windows-x86-64\StartSonar.bat即可启动SonarQube,启动成功记录如下;
  • 提示启动成功后,浏览器访问即可打开SonarQube分析平台,输入默认账户admin/admin即可登录成功。
  • 安装汉化插件,导航条中点击Administration菜单,搜索Chinese pack进行安装
  • 关于数据库,SonarQube默认使用内嵌数据库,内嵌数据库仅用于测试场景,推荐使用开源的 postgresql ,安装并创建好postgresql数据库后修改conf\sonar.properties目录中的如下三项进行数据库设置即可(有关postgresql的下载安装请网上自行搜索相关文档)。
 sonar.jdbc.username=test
sonar.jdbc.password=test
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema  
SonarQube的使用
  • 创建新项目,根据页面提示创建新项目,选择手工
  • 输入项目信息,根据个人情况自行设置
  • 创建令牌,根据个人情况自行设置,创建令牌成功后点击继续
  • 配置项目信息,这里以python项目为例,配置信息如下,您需要根据自己的项目和系统信息调整配置,配置好后点击下载
  • 下载并配置 扫描器 ,点击下载后会跳转到一个扫描器下载和配置说明页面,下载扫描器并根据配置说明,在您需要执行扫描的项目根目录新建sonar-project.properties配置文件,配置文件中的test为创建项目的名称。
 # must be unique in a given SonarQube instance
sonar.projectKey=my:test

# --- optional properties ---

# defaults to project key
#sonar.projectName=My project
# defaults to 'not provided'
#sonar.projectVersion=1.0
 
# Path is relative to the sonar-project.properties file. Defaults to .
#sonar.sources=.
 
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8  
  • 将扫描器添加到 环境变量 ,如我添加到环境变量的路径为C:\工具\sonar-scanner-4.6.0.2311-windows\bin,根据您的解压路径进行调整
  • 执行代码扫描,之前创建项目过程中已经生成了扫描器的执行命令, 新打开 一个cmd命令行窗口,cd到项目的根目录执行如下命令开始扫描,分析完成记录如下。
 sonar-scanner.bat -D"sonar.projectKey=test" -D"sonar.sources=." -D"sonar.host.url=#34; -D"sonar.login=b0de309ea4b6561c9e456bd5946f9a3292b94864"  
  • 查看分析结果,刷新,可以查看项目的扫描结果