一、概述

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。
在对其他工具的支持方面,Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。
此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持

特色功能:
1、使用Quality Gate对项目的代码质量评级;
2、使用Technical Debt描述代码质量问题带来的技术债务;
3、提供直观方便的web操作界面,支持任务的指派和跟踪,可以发表评论;
4、提供强大的代码规范规则,可手工开启或关闭;
5、提供多维度的各种统计和分析,包括像代码注释占比、重复代码分析等。
官网
https://www.sonarqube.org/
使用流程图

1、开发负责人获取最新代码到本地;
2、开发负责人执行sonar-runner开始代码分析工作;
3、开发负责人将分析出来的issue指派给开发人员;
4、开发人员修复issue;
5、开发负责人重新获取最新源码,重新执行sonar-runner,检查issue的修复情况。

二、安装

参考
https://www.cnblogs.com/qiaoyeye/p/5249786.html
SonarQube是服务器端,它主要有两个功能:1.分析源代码;2.因为它内嵌了Apache模块,所以提供Web端的界面访问。
SonarQube Runner是一个利用SonarQube服务端分析代码的命令行工具,可以把它简单理解为客户端。

三、使用说明

1.获取最新源码

Sonar的工作空间在D:\sonar-workspace,可以按项目在该目录下新建目录。
将svn上最新的项目源码下载下来,如下图

2.启动源码分析

(1)配置sonar-project.properties文件,将sonar-project.properties放到项目根目录下。

# must be unique in a given SonarQube instance
sonar.projectKey=my:project
# this is the name displayed in the SonarQube UI
sonar.projectName=safecampus
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
sonar.sources=src/com/gzzm/safecampus
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
sonar.java.source=1.7
sonar.java.target=1.7

sonar.projectKey 唯一
sonar.projectName为项目名称,唯一。
sonar.sources指明源码位置,指明为src则会扫描整个src目录。
src/com/gzzm/safecampus声明仅需要扫描src/com/gzzm/safecampus目录。
sonar.java.source和sonar.java.target按实际情况配置。

(2)在命令行下切换到项目根目录下,执行sonar-runner命令启动源码分析


执行成功

3.登录Sonar查看issue

http://192.168.1.204:9000/
点击项目名称 → Issue



页面左侧提供了多种维度的筛选条件供选择

4.将Issue指派给开发人员

5.处理Issue

6.写评论


评论支持通过标记代码对评论的文字进行加粗等操作,可以点击Markdown Help超链接打开标记代码帮助页面。

四、系统配置

1.创建用户

使用管理员登录。
Administration → Security → User

点击右上角的create,输入登录名、姓名、邮箱(用于接收通知)、登录密码。

2.Rules配置

可以在此设置Rule的开关,如某些规则不适用的可以将其Deactivate。

3.发送邮件

(1)系统邮箱配置
Administration → Configuration → General Settings → Email
以163邮箱为例,需要注意SMTP password中需要输入的不是163邮箱登录账号的密码,而是163邮箱的授权客户端密码。获取方法参考文章末尾的“获取163邮箱授权客户端”。
Email prefix配置的是邮件标题前缀。

填写完毕后点击Save Email Settings。
发送测试邮件

收到的测试邮件

(2)邮件连接url配置
Administration → Configuration → General Settings → General → Server base URL
输入系统的访问地址,如http://192.168.1.204:9000/,该url用于系统发送消息通知时将该url作为访问相关消息的一部分,方便用户可以直接点击邮件中的链接直接链接到消息目标。
(3)用户邮箱配置
用户的邮箱由系统管理员统一配置。用户可以配置那些消息需要发送邮件通知。
配置步骤:
登录后点击用户名右下角的箭头 → My profile

上面5项为全局配置(与项目无关),需要为特定项目配置消息通知,在Add project里输入项目名称,选择需要添加的项目。

勾选需要通知的消息,点击Save changes保存修改即可。

4.Quality Gate配置

5.Rules配置

五、常见问题

1.忘记密码

执行以下sql将密码还原为admin

update users
set crypted_password = '88c991e39bb88b94178123a849606905ebf440f5',
salt='6522f3c5007ae910ad690bb1bdbf264a34884c6d'
where login = 'admin'

2.版本

Sonar Sonar-Scanner SonarLint JDK
5.3 2.5 不支持 1.7
5.6.7 3.2.0.1227 2.4 1.8

3.源码乱码

在Issue中查看源码,中文变成了乱码。需要设置项目的sonar-project.properties文件。
增加红色加粗字体的内容,设置源码的编码为UTF-8。需要重新执行sonar-runner生效。

# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

4.获取163邮箱授权客户端

(1)登录163邮箱
(2)设置 → 常规设置

(3)客户端授权密码 → 开启,会提示需要手机验证码验证,按提示操作即可。

(4)短信验证码验证成功后,可以输入授权码。将该授权码记录下来,方便后续使用。

5.指定JDK版本

当sonar-scanner所在机器上安装了多个JDK的时候,需要为sonar-scanner的运行指定JDK版本。修改sonar-scanner_home/bin/sonar-runner.bat
设置JAVA_HOME

SonarQube使用说明相关推荐

  1. SonarQube代码质量检查平台

    前言:code review: 随着业务的发展,系统越来越庞大,原本简单稳定的功能,可能在不断迭代后复杂度上升,潜在的风险也随之暴露,导致最终服务不稳定,造成业务价值的损失.而为了减少这种情况,有一种 ...

  2. SonarQube代码质量检查工具攻略大全

    前言 随便写写,大家也就随便看看,2020年,争取拿个乒乓球小区冠军. 1 概述 SonarQube是一个开源平台,用于管理源代码得质量.SonarQube不只是一个质量数据报告工具,更是代码质量管理 ...

  3. SonarQube使用教程及案例

    转载:http://t.csdn.cn/VAf1e 原文链接:https://blog.csdn.net/a745233700/article/details/126326765 前言:code re ...

  4. jenkins+sonarqube流水线脚本模板

    pipeline { //这个任务在哪个主机上运行 //agent any//将这个项目运行在slave上 agent { label 'node1' }//参数化构建,主要设定git_version ...

  5. abaqus高性能服务器怎么用,高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF...

    高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF 高性能计算平台ABAQUS 任务调度使用说明 作者:陈林 E-Mail:chenlin@ 日期:2017-1-10 ...

  6. linux 文件拷贝并替换,Linux_cmd replace 文件替换使用说明,帮助信息: 复制代码 代码如 - phpStudy...

    cmd replace 文件替换使用说明 帮助信息: 复制代码 代码如下: 替换文件. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [ ...

  7. 2017.4.18 静态代码分析工具sonarqube+sonar-runner的安装配置及使用

    配置成功后的代码分析页面: 可以看到对复杂度.语法使用.重复度等等都做了分析,具体到了每一个方法和每一句代码. 四种使用方式: sonarqube + sonar-runner sonarqube + ...

  8. Simple Dynamic Strings(SDS)源码解析和使用说明二

    在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...

  9. Delphi开发的IOCP测试Demo以及使用说明。

    Delphi开发的IOCP,此为压力测试Demo和使用说明.

最新文章

  1. Asp.net开发中甩掉.ashx .asmx
  2. Python模块及其导入
  3. ubuntu中安装mongodb注意事项
  4. Mail_Android_Video_SW_DDK_Intergration_Guide_And_Codec_User_Manual中文翻译【chapter2】
  5. 人大金仓数据库Centos 7 部署
  6. logisim实验三:原码一位乘法器设计实验
  7. Hi3519V101 开发环境搭建
  8. iOS 10 消息推送
  9. 微信app支付签名错误
  10. 深度残差网络+自适应参数化ReLU激活函数:调参记录2
  11. android 播放器全屏模式,ArtVideoPlayer 一个灵活的Android视频播放器,支持全屏,小屏播放...
  12. 为什么说美团的天花板是美团自己?
  13. AlphaControls 控件 编辑皮肤 变更Glyphs控制符号
  14. 全局vue中修改字体样式 苹方字体 微软雅黑 亲测可用
  15. 土壤微生物组——从宏基因组学到宏表型组学
  16. 程序员面试备战篇:69个经典Spring面试专题解析(干货分享答案)
  17. 工作笔记-----mingw libgcc_s_sjlj-1.dll is missing
  18. cad自动运行dvb lisp_CAD-如何自动加载dvb、vlx、fas、lsp、arx文件
  19. 我为什么离开神州泰岳
  20. c语言//求10个数字平均数

热门文章

  1. java使用paint方法画图
  2. 最高加速9倍!字节跳动开源8比特混合精度Transformer引擎
  3. 基于stc15w4k56s LCD1602的ADC(中断)的实验
  4. Elementui如何修改自定义主题
  5. ruby基础算法--使用比较符号对数组排序
  6. 伪创新为什么受欢迎-《软件方法》节选
  7. MindManager安装环境
  8. 深度学习--自编码器(AutoEncoder)
  9. Sublime Text总在新窗口打开一个文件夹
  10. scutcode123. bx和妹子的游戏