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 服务器搭建。

相关文章
|
存储 Java 程序员
100道最新Java面试题,常见面试题及答案汇总(上)
100道最新Java面试题,常见面试题及答案汇总
393 0
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
1086 0
|
机器学习/深度学习 存储 人工智能
ONNX 与安全:保护模型免受攻击
【8月更文第27天】随着人工智能和机器学习模型的应用越来越广泛,模型的安全性也成为了人们关注的重点。Open Neural Network Exchange (ONNX) 作为一种开放的标准格式,不仅可以促进不同框架之间的模型共享,还面临着如何保护模型不被恶意攻击的风险。本文将探讨 ONNX 在模型安全方面的考虑,以及如何利用 ONNX 和其他技术来保护模型免受攻击。
816 4
白嫖!字节跳动 Java岗顶级面试解析(2023版),GitHub巅峰神作!
开始之前,先说一下我非常推荐的一种学习方式: 带着问题学习或者准备面试。 另外,准备面试的小伙伴,一定要根据自身情况制定好复习计划! 并且,你最好还要时不时自测一下,对着一些面试常见的问题进行自问。 最近,我分析了上百份大中小厂的面经,发现了许多Java 面试中最最最常问的一些问题!并且都在字节跳动 Java面试顶级解析(2023版)小册里面找到了对应的题目和答案,小伙伴们可以对照着学习或者准备面试。
|
搜索推荐 算法 Java
电影推荐|基于SSM+vue的电影推荐系统的设计与实现(源码+数据库+文档)
电影推荐|基于SSM+vue的电影推荐系统的设计与实现(源码+数据库+文档)
314 3
|
开发工具 git
git统计项目代码行数
git统计项目代码行数 显示项目的所有文件列表及行数
1405 0
|
负载均衡 算法 网络协议
【专栏】网络高可用性和负载均衡关键在于VRRP、VGMP和HRP协议
【4月更文挑战第28天】网络高可用性和负载均衡关键在于VRRP、VGMP和HRP协议。VRRP实现路由器冗余,保证流量转发;VGMP优化多播流量传输,适合多媒体服务;HRP提供无缝故障转移,适用于电信级网络。选择需考虑网络环境和业务需求,VRRP简单易部署,VGMP处理多播流量,HRP适合高稳定性场景。理解协议特点,确保网络最佳性能和可用性。
696 4
|
消息中间件 Java Kafka
Spring Boot与Apache Kafka集成的深度指南
Spring Boot与Apache Kafka集成的深度指南
|
算法 Java C++
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题