SonarQube是一款开源的自动代码审查平台,可以检测25+的编程语言如 Java ,C#,JavaScript, TypeScript ,C/C++,COBOL等的代码缺陷和安全漏洞,且可以 与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查 。OWASP收录了该工具,全称为开放式Web应用程序安全项目,是一个非营利组织。
- 官网下载链接:,下载的版本为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"
- 查看分析结果,刷新,可以查看项目的扫描结果