当前位置:首页 > 技术分析 > 正文内容

企业中通过Sonar代码质量管理详解

ruisui883个月前 (01-31)技术分析16

一:简介

Sonar一个Web系统,展现了静态代码扫描的结果,结果是可以自定义的 ,支持多种语言的原理是它的扩展性。

二:JDK安装

SonarQube7.8版本需要jdk1.8或者更高的版本。

三:SonarQube安装

1. SonarQube 下载

SonarQube 下载地址 注意:要下载7.8版本,因为7.8版本以上的不再支持mysql数据库了,下载后简单解压一下即可。

直接点击Community Edition即可,不用点下拉的选项。

2. 启动SonarQube Web服务

通过命令行启动 ./sonar.sh start

  • start 启动web项目
  • console 查看start的命令打印的日志,即查看logs/sonar.log文件内容

访问SonarQube Web地址 http://localhost:9000

3. 配置数据库信息

# 需要预先创建好数据库
CREATE DATABASE `sonar` DEFAULT CHARACTER SET utf8;

/sonarqube-7.8/conf/sonar.properties

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
# 数据库的用户名
sonar.jdbc.username=root
# 数据库密码
sonar.jdbc.password=root123
sonar.sorceEncoding=UTF-8
# SonarQube Web服务登录的用户名和密码
sonar.login=admin
sonar.password=admin

4. 重启命令restart

restart命令执行后会初始化数据库表

5. 使用用户名和密码再次访问SonarQube Web

http://localhost:9000 输入用户名和密码,即在sonar.properties文件中配置的login和password值,admin amdin

6. 安装中文包插件

重启使插件生效

四:SonarScanner安装

1. 下载SonarScanner

SonarScanner下载地址

配置sonar-scanner-4.0.0.1744-macosx/conf/sonar-scanner.properties数据库信息

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=root123

2. 添加环境变量

vi ~/.bash_profile
export SONAR_RUNNER_HOME=/Users/mengday/Softwares/sonar/sonar-scanner-4.0.0.1744-macosx
export PATH=$SONAR_RUNNER_HOME/bin:$PATH
soruce ~/.bash_profile
# 查看sonar-scanner命令是否生效
sonar-scanner --version

3. 在一个maven项目中配置sonar-project.properties文件

本文使用了springboot-pay-example 这个项目作为演示的,可以到github上限下载下来,然后在idea中打开。

在一个项目的根路径下创建sonar-project.properties文件,并设置属性值

sonar-project.properties

sonar.projectKey=my:project
sonar.projectName=springboot-pay-example
sonar.projectVersion=1.0
sonar.sources=src
sonar.java.binaries=target/classes
  1. sonar.projectName是项目名字,
  2. sonar.sources是源文件所在的目录,
  3. sonar.java.binaries SonarQube新版相对于之前的版本新增要求必须指定项目class文件的目录,如果不配置会报错,注意target/classes目录必须存在,为了确保target/classes存在,先通过maven clean install一下
# 切换到项目根目录下
cd /Users/mengday/Projects/learning/springboot-pay-example
# 开始代码扫描分析
sonar-scanner

4. 查看代码分析结果

这里分析出来2个Bug

点开第二个查看具体问题代码

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/610.html

分享给朋友:

“企业中通过Sonar代码质量管理详解” 的相关文章

Linux发行版Debian推出12.2及11.8版本,修复多个安全问题

IT之家 10 月 9 日消息,Debian 是最古老的 GNU / Linux 发行版之一,也是许多其他基于 Linux 的操作系统的基础,包括 Ubuntu、Kali、MX 和树莓派 OS 等,近日 Debian 推出了 12.2 和 11.8 版本,主要修复了多个安全问题。▲ 图源 Debia...

理解virt、res、shr之间的关系(linux系统篇)

前言想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们分别代表什么意思呢?这是本文需要跟大家一起探讨的问题。...

面试被逼疯:聊聊Python Import System?

面试官一个小时逼疯面试者:聊聊Python Import System?对于每一位Python开发者来说,import这个关键字是再熟悉不过了,无论是我们引用官方库还是三方库,都可以通过import xxx的形式来导入。可能很多人认为这只是Python的一个最基础的常识之一,似乎没有可以扩展的点了,...

佳能 EOS R8 深度评测

佳能 EOS R8 的定位是入门级全画幅无反光镜可换镜头相机。尽管在产品阵容中处于这一位置,R8 仍然是一个强大的相机,配备了先进的 R6 II 同款成像传感器、快速处理器和令人难以置信的自动对焦系统,体积小、重量轻、价格低。这款相机是发烧友、旅行者、家庭以及任何想要全画幅传感器相机的人的绝佳选择。...

Vue进阶(幺叁捌):vue路由传参的几种基本方式

1、动态路由(页面刷新数据不丢失)methods:{ insurance(id) { //直接调用$router.push 实现携带参数的跳转 this.$router.push({ path: `/particulars/${id}`,...

VUE-router

七.Vue-router1、什么是vue-routervue-router是vue.js官方路由管理器。vue的单页应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统页面切换是用超链接a标签进行切换。但vue里是用路由,因为我们用Vue做的都是单页应用,就相当于只有一个主的i...