SonarQube是一个用于管理代码质量的平台,它支持多种编程语言,如Java、C#、C/C++、Python等。通过集成到CI/CD流程中,SonarQube能够自动对代码进行静态分析,生成详细的质量报告。这些报告不仅包含了问题列表,还提供了问题的详细描述、严重程度、修复建议等信息,帮助开发者快速定位和解决问题。
其主要功能包括静态代码分析、质量门定义、自定义规则以及集成与协作。
SonarQube的使用场景涵盖了代码审查、持续集成等方面,它能够帮助开发人员写出更干净、高质量、更安全的代码,是代码质量、安全扫描和分析的重要工具。
安装工具
序号 | 软件 | 版本 | 用途 | 备注 |
1 | PostgreSQL | 13.16-1 | 数据库 | - |
2 | JDK | 11.0.1 | Java环境 | - |
3 | Sonarqube | 10.6.0.92116 | 静态测试工具包 | - |
4 | Sonar-scanner | 6.1.0.4477 | 代码质量检查 |
问题说明
(1)数据库使用问题
SonarQube从7.9版本开始就不再支持MySQL数据库。在此之前的版本,即7.8及以下版本,是支持MySQL数据库的,但要求MySQL的版本在5.6到8.0之间。从7.9版本开始,SonarQube官方推荐使用其他数据库,如Oracle, SQL Server, 或PostgreSQL。因此,在选择使用SonarQube时,需要特别注意其版本与数据库兼容性的问题,以确保系统的顺利运行。
在安装SonarQube之前,建议访问官方文档,查看当前版本的软硬件支持情况,并根据需求选择合适的版本进行安装。
Windows本地安装配置
JDK安装及配置
下载JDK:首先,访问Oracle官方网站或其他受信任的来源,获取最新版本的JDK。确保选择的版本与您的操作系统版本和体系结构(32位或64位)兼容。下载完成后,双击安装程序开始安装。
JDK下载网站如下:
- 运行安装程序:在Windows系统上,通常是一个.exe文件。启动后,安装向导将引导您完成剩下的安装过程。
- 设置安装选项:在安装向导中,您可以自定义安装选项。通常建议选择默认选项,以确保JDK正确配置。您还可以选择要安装的JDK版本,但新手建议选择默认版本。
- 完成安装:安装向导将复制文件并配置系统以使JDK正常运行。等待安装完成,您应该会看到一个安装成功的消息。
- 配置Java环境变量:安装完JDK后,配置Java环境变量是非常重要的,这样您的操作系统才能找到并正常运行Java。操作如下:在设置中找到系统信息,在系统信息对话框中,点击“高级系统设置”选项卡,然后点击“环境变量”按钮。在环境变量对话框的“系统变量”部分中点击“新建”,新增变量名为‘JAVA_HOME’、变量值为‘JDK安装路径’,再次找到Path并点击进入,在窗口内新增一条‘%JAVA_HOME%\bin’和‘%JAVA_HOME%\jre\bin’,保存并关闭:确保已添加路径后,点击“确定”按钮关闭所有打开的对话框。
- 验证安装:要验证JDK是否成功安装,打开命令提示符(在Windows中,按Win + R,键入“cmd”并按Enter)。在命令提示符中,输入以下命令:java -version。如果看到与安装的JDK版本相关的信息,代表已成功安装了JDK。
- 这些步骤提供了一个简单的教程,帮助您在Windows系统上安装和配置JDK。
PostgreSQL安装及配置
访问PostgreSQL的官方网站或指定的下载安装包。
PostgreSQL官网
(PostgreSQL: Windows installers)
- 运行安装包,并按照提示选择安装目录(推荐安装至D盘或顺延)、选择需要安装的服务组件(如PostgreSQL Server、pgAdmin等)。
- 设置数据库实例化数据存放目录;设置数据库超级用户(postgres)的密码;配置默认监听端口,通常为5432。
- 在系统环境变量中配置PostgreSQL的路径,以便在命令行中方便地使用PostgreSQL命令。
- 在Windows上配置PostgreSQL的环境变量,你需要将PostgreSQL的bin目录添加到系统的PATH环境变量中。以下是如何进行配置的步骤:
- 找到PostgreSQL的安装目录。
- 找到bin目录的路径(例如:C:\Program Files\PostgreSQL\13\bin)。
- 右键点击“我的电脑”或者“此电脑”,选择“属性”。
- 点击“高级系统设置”。
- 在系统属性窗口中,点击“环境变量”。
- 在“系统变量”下,找到并选择“Path”变量,然后点击“编辑”。
- 在“编辑环境变量”窗口,点击“新建”并输入PostgreSQL的bin目录路径。
- 点击“确定”保存更改,并关闭所有窗口。
Sonarqube安装及配置
首先,需要下载并解压SonarQube安装包。
其次的前提条件:已经安装好JDK环境;PostgreSQL要配置一个SonarQube的数据库,操作过程如下:
1) 创建数据库:在 PostgreSQL 命令行中,使用以下命令来创建一个新的数据库。在此例中,数据库命名为 sonarqube,你可以根据需要修改这个名称。
CREATE DATABASE sonarqube;
2)接下来,为 SonarQube 创建一个新的数据库用户,并授予该用户访问新创建的数据库的权限。使用以下命令:
CREATE USER sonaruser WITH ENCRYPTED PASSWORD 'your_password(你的密码)'; GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonaruser;
3)编辑 SonarQube 安装目录下的 conf/sonar.properties 文件,找到 PostgreSQL 数据库相关的配置部分,并设置如下:
sonar.jdbc.username=sonaruser sonar.jdbc.password=your_password sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
4)运行SonarQube的启动脚本,例如sonar.sh(Linux)或sonar.bat(Windows)。
5)在浏览器中访问SonarQube的地址,例如http://localhost:9000。
Sonar-scanner安装及配置
首先,需要下载并解压Sonar-scanner安装包。
Sonar-scanner安装地址如下:
(SonarQube 10.6),具体安装位置参考下图;
下载完成后进行文件解压,解压后修改对应sonar-scanner/conf/目录下的sonar.properties;
sonar.host.url=http://localhost:9000 useConfigs=maxPerformance sonar.sourceEncoding=UTF-8 sonar.login=设置的登录账户名,默认admin sonar.password=设置的登录密码,默认admin
配置环境变量:在环境变量中增加SONAR_SCANNER_HOME并输入变量值为安装路径,然后path添加:%SONAR_SCANNER_HOME%\bin;
打开cmd,输入:sonar-scanner -version,验证是否配置成功。
Windows本地使用说明
1、启动Sonarqube服务,在本地访问http://localhost:9000,在页面输入账号密码登录进入系统;
2、初次进入首页没有信息,需要在系统中手动新增项目,首先点击【新增项目】-【手工】,进入创建项目页面;
3、在创建项目页面,输入显示名称以及项目标志并点击【下一步】;
4、默认选择全局设置后,点击【创建1project】;
5、默认点击“其他CI”(根据实际测试需求选择),本地的话选择【本地】,进入令牌创建界面;
6、进入创建令牌界面,点击【创建】;
7、点击【继续】;
8、选择对应要分析的项目并按照系统给出命令执行,在执行时遇到报错问题可能是编码格式或者找不到检查类型的问题可以补充命令,说明如下:
sonar-scanner.bat -D"sonar.projectKey=Test" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.token=sqp_fcc7a09bd9e353ff91715d7d140c64f683cc16db" -D"sonar.exclusions=**/*.java" -D"sonar.sourceEncoding=UTF-8"
如果以上步骤执行不成功,刻在代码根目录中放入一个配置文件,并在该文件中打开CMD命令窗口执行:sonar-scanner
【sonar-project.properties】配置内容如下所示:
IDEA集成插件使用说明
IDEA如何安装SonarLint插件
- 打开 Idea-
- 点击【File】
- 点击【Settings】
- 点击【Plugins】
- 在搜索栏中输入“sonarlint”关键字
- 点击【Install】进行安装
- 重启Idea
IDEA如何连接Sonar服务器
- 打开 Idea
- 点击【File】→【Settings】
- 选择【SonarLint General Settings】
- 点击【+】
- ConfigurationName:请输入连接名,如SonarQube
- Choosea Connection Type:sonarqube
- SonarQubeURL:http://localhost:9000(本地/部署Sonarqube的服务地址)
- AuthenticationType:Login/Password(也可以是系统生成的一个Token)
Login:请输入sonar系统登录用户名
Password:请输入sonar系统登录密码
- 点击【Next】,提示连接成功
IDEA中SonarLint如何进行代码扫描
扫描整个工程
- 打开 IDEA
- 右击项目名称,如jar-kdc-api
- 点击【SonarLint】
- 点击【AnalyzeAll Files with SonarLint】
- 弹出确认窗口,点击【Proceed】继续
- 【SonarLint Analysis】窗口会显示扫描进度
扫描单个文件
1、打开单个文件,sonarlint会自动进行sonar扫描
2、插件检查结果不会上传到Sonarqube服务端,需要在终端执行与Windows同样的命令才可上传至服务端口,具体操作如下:
3、在pom.xml文件中配置如下:
5、在窗口执行即可
sonar-scanner.bat -D"sonar.projectKey=Test" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.token=sqp_fcc7a09bd9e353ff91715d7d140c64f683cc16db(系统生成的)" -D"sonar.exclusions=**/*.java" -D"sonar.sourceEncoding=UTF-8"
总结
静态测试是提高软件质量和开发效率的重要工具,它通过在代码执行之前进行分析来发现潜在问题。其主要目的是发现编码错误、提升代码质量、增强安全性、优化性能、支持代码审查、提高开发效率、遵循标准和改善文档。通过有效的静态测试,开发团队可以在软件发布之前解决许多潜在的问题,减少后期维护和修复的工作量。