SonarScanner有效检查代码质量

简介: sonar 是一个用于代码质量管理的开放平台,支持Windows、Linux、Mac。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具以及持续集成工具,是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便的不同规模和种类的工程进行代码质量管理。

1. sonarQube与SonarScanner的关系


sonar 是一个用于代码质量管理的开放平台,支持Windows、Linux、Mac。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具以及持续集成工具,与持续集成工具不同,Sonar 并不是简单地把不同的代码检查工具结果直接显示在 WEB页 面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便的不同规模和种类的工程进行代码质量管理。


微信图片_20220504084024.png


2. 安装SonarScanner



在安装 SonarScanner 之前,需要先安装 jdk(至少 1.8 及以上版本)。


  • 下载SonarScanner


https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/


下载完后,是一个 zip 压缩包。直接解压到目标目录即可,这里解压到


C:\jenkins\sonar-scanner-4.7


  • 配置环境变量


SONAR_SCANNER_HOME
SONAR_SCANNER_HOME=C:\jenkins\sonar-scanner-4.7
PATH
PATH=%PATH%;C:\jenkins\sonar-scanner-4.7\bin


打开cmd命令行,使用如下命令可以检查是否安装成功


sonar-scanner --version


3. SonarScanner配置文件说明


找到 conf/sonar-scanner.properties 配置文件。大致内容如下


#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here
#----- Default SonarQube server
#sonar.host.url=http://localhost:9000
#----- Default source code encoding
#sonar.sourceEncoding=UTF-8


其中 sonar.host.url 配置项是 SonarQube 服务器的地址,根据具体情况配置。先安装如下配置


sonar.host.url=http://127.0.0.1:9000
sonar.sourceEncoding=UTF-8


即 SonarQube  服务器安装在本机,端口是 9000。


4. 项目配置


假设需要扫描的项目是


C:\jenkins\SpringBoot_v2


扫描其中的 src 目录


微信图片_20220504084034.png


C:\jenkins\SpringBoot_v2 添加一个 sonar-project.properties 文件。配置文件模板如下:


# must be unique in a given SonarQube instance
sonar.projectKey=my:project
# --- 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


配置项说明:


  • sonar.projectKey:在 sonarQube 服务器上的实例键名;必须是唯一的,不可重复相同
  • sonar.projectName:在 sonarQube 服务器上的项目名称
  • sonar.projectVersion:项目版本号,可以不指定
  • sonar.sources:指定源代码目录,可以指定扫描目录。填写sonar-project.properties文件所在目录的相对路径


如图,sonar-project.properties 文件在 C:\jenkins\SpringBoot_v2想要扫描 src 目录,就直接填写


sonar.sources=src


微信图片_20220504084039.png


  • sonar.sourceEncoding:编码格式指定


配置如下


sonar.projectKey=SpringBoot_v2:1.0
sonar.projectName=SpringBoot_v2
sonar.projectVersion=1.0
sonar.sources=src
sonar.sourceEncoding=UTF-8


5. 进行扫描


如果安装了 sonarQube 服务器就可以进行静态代码扫描了。目前没有安装的情况下,进入目录


C:\jenkins\SpringBoot_v2


在 cmd 命令行执行命令


sonar-scanner


出现以下错误


微信图片_20220504084043.png

 

 下篇讲解 sonarQube 服务器搭建。

相关文章
|
1月前
|
敏捷开发 安全 测试技术
掌握单元测试:确保代码质量的关键步骤
单元测试是确保代码质量、提升可维护性和可靠性的重要手段。本文介绍了单元测试的基本概念、重要性及最佳实践,包括测试驱动开发(TDD)、保持测试独立性、使用断言库和模拟依赖等,旨在帮助开发者掌握单元测试技巧,提高开发效率。
|
3月前
|
安全 算法 Java
代码质量和安全使用代码检测提升
云效代码管理提供多种内置扫描服务,确保代码质量与安全性。面对编码不规范、敏感数据泄露、依赖项安全漏洞等问题,该服务从代码提交到合并全程保驾护航。不仅依据《阿里巴巴 Java 开发手册》检查编码规范,还利用先进算法智能推荐代码补丁,检测敏感信息及依赖包漏洞。用户可在每次提交或合并请求时选择自动化扫描,快速定位并解决问题,提升研发流程的稳定性与安全性。立即体验云效代码管理,保障代码健康。
71 11
|
5月前
|
测试技术 持续交付
单元测试问题之确保单元测试自动化运行中的问题如何解决
单元测试问题之确保单元测试自动化运行中的问题如何解决
|
5月前
|
测试技术 数据库 开发者
开发与运维测试问题之高代码覆盖率意味着高代码质量如何解决
开发与运维测试问题之高代码覆盖率意味着高代码质量如何解决
|
7月前
|
弹性计算 Shell 开发工具
自动化代码质量检查
【4月更文挑战第30天】
40 0
|
程序员
缺陷(bug)管理
理论上软件的缺陷是可修复的,不过有的修复成本比较高,不能追求软件的完美,根据风险来确定是否修复缺陷
一日一技:pylint除了检查代码风格,还能做这件事情
一日一技:pylint除了检查代码风格,还能做这件事情
84 0
|
测试技术 Python
|
测试技术
软件测试面试题:在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题?
软件测试面试题:在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题?
122 0
|
测试技术
软件测试面试题:自动化测试有误报过bug吗?产生误报怎么办?
软件测试面试题:自动化测试有误报过bug吗?产生误报怎么办?
142 0