代码质量检测-Sonar
一。 Sonar简介
sonarqube系统是一个代码质量检测工具 由以下四个组件组成(https://docs.sonarqube.org/display/SONAR/Architecture+and+Integration)
1》一个sonarqube服务器 包含三个子进程(web服务(界面管理),搜索服务 计算引擎服务(写入数据库))
2》一个sonarqube数据库 配置sonarqube服务
3》多个sonarqube插件 位于解压目录 extensions\plugins目录
4》一个或者多个sonarqube scanners 用于分析特定的项目
使用SonarQube(简称SQ)工作流程
开发者使用开发工具(eclipse,ide)上传代码到SCM(源代码管理器) 系统自动同步代码到某个位置 sonarqube scanners 扫描该代码检查质量 将分析结果 将分析结果推送到SQServer 存储在SQ数据库 用户可以使用eclipse插件sonarlint来同步sonarqube服务器配置(java和js版本等)可以实时在线分析

二。SonarQube安装
sonarqube官方文档(文档https://docs.sonarqube.org)
安装过程参考(https://docs.sonarqube.org/display/SONAR/Setup+and+Upgrade)
1》下载并且解压
下载 sonarqube-5.4 点击文档 https://docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes 的download page 进入下载
这里使用window解压后进入 sonarqube-5.4\bin\windows-x86-64目录
点击 StartSonar.bat运行
浏览器输入地址 http://localhost:9000/ 输入账号密码 admin/admin 进入
2》修改SQ默认的数据库
sq支持多种数据库引擎 默认内嵌了一个数据库 默认打开端口9092 这里使用mysql替代
启动任意mysql 创建一个数据库 名字:sonar
找到conf/sonar.properties 将配置文件以下几项打开
#----- MySQL 5.x
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?
useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=123456
重新启动 使用客户端连接mysql 的sonar库发现多了很多表
3》SQ汉化
点击官方文档左侧的Plugins 进入右侧右下角的Localization 点击Chinese 进入了github地址(
https://github.com/SonarQubeCommunity/sonar-l10n-zh) 对应版本是
SonarQube 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7
sonar-l10n-zh 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19
SonarQube 5.4 5.5 5.6
sonar-l10n-zh 1.9 1.10 1.11
SonarQube 4.0 4.1
sonar-l10n-zh 1.7 1.8
SonarQube 3.1 3.2 3.3 3.4 3.5 3.6 3.7
sonar-l10n-zh 1.0 1.1 1.2 1.3 1.4 1.5 1.6
查看对应的版本 5.4需要1.9的sonar-l10n-zh 点击releases下载对应版本
将下载好的jar 置入 extensions\plugins目录下
重启服务 访问http://localhost:9090发现变成中文版
另外一种方式 也可以登录系统 点击配置-系统-更新中心管理插件 可以在线搜索安装chinese插件
三。Sonar分析项目
1》命令行使用SonarQube Scanner分析
进入官方文档 点击Scanners 点击子菜单 Analyzing with SonarQube Scanner 根据官方向导进行配置
点击 文档顶部的 不同系统版本 这里是 Windows 64 bit 下载后 解压
设置 sonar-scanner-3.0.3.778-windows\bin 设置到环境变量PATH中
修改 conf/sonar-scanner.properties 指定sonar qube服务器的地址 默认如果按照在本机无需修改
sonar.host.url=http://localhost:9000
找一个有源代码的项目 比如我有个项目叫kafka 在项目的根目录 添加一个配置文件sonar-project.properties 添加内容
# 当前项目实例的唯一表示
sonar.projectKey=kafka
# 显示在sonarqube 界面上的项目名称
sonar.projectName=kafka
sonar.projectVersion=1.0
# 相对于当前配置文件目录 下的源代码目录 不管什么平台路径分隔符只能有 / 不能使用\
sonar.sources=src/main/java
# 源代码的字符集
#sonar.sourceEncoding=UTF-8
进入kafka项目根目录 执行命令 sonar-scanner 出现 执行 EXECUTION SUCCESS 表示成功
成功后进入qb ui界面 http://localhost:9000 可以看到多出一个kafka的项目列表
点击项目名称 进入 可以看到该项目的所有统计 包括存在问题
点击问题进入 就能看到对应的问题列表
eclipse ide安装sonarlint 实时监测代码质量 插件地址https://github.com/SonarSource/sonarlint-eclipse 可以使用markerplace搜索安装
安装使用mars(4.5.2) 无论是markerplace还是下载包离线安装都无法安装 安装Eclipse Java Oxygen版本 可以在markerplace搜索安装
查找视图 SonarQube Servers 点击 Connect to a SonarQube server
选中 sonarqube点击下一步 输入url http://localhost:9000 输入用户名和密码 (admin/admin) 点击完成 抛出错误
Starting SonarLint for Eclipse 3.3.1.201712071600
The following plugins do not meet the required minimum versions, please upgrade them on your SonarQube server:
java (installed: 3.13.1, minimum: 4.0)
javascript (installed: 2.11, minimum: 2.14)
因为sonarqube使用 sonar-java插件来扫描java代码 使用 sonar-javascript插件扫描js代码 控制质量 这里我使用的sonarqube必须是 5.6版本 默认的java插件时3.13.1 (https://github.com/SonarSource/sonar-java)最小必须使用4.0 js插件时 2.11 最小必须是 2.14 (https://github.com/SonarSource/SonarJS)可以去github上搜索两个插件到release上下载 删除之前的版本 替换到 extensions\plugins目录即可
再次在 SonarQube Servers 右键 Update all project setting 发现不再报错
在项目上右键 分析项目 在SonarLint Report查看到所有分析结果

代码质量检测-Sonar的更多相关文章
- Docker 搭建代码质量检测平台 SonarQube
开始搭建 1.获取 postgresql 的镜像 $ docker pull postgres 2.启动 postgresql $ docker run --name db -e POSTGRES_U ...
- 代码质量检测(SonarQube)整合中文版+阿里P3C
代码质量检测(SonarQube)整合中文版+阿里P3C 简介 SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味.它可以与您现有的工作流程集成,以便在项目分支和拉取请求之 ...
- sonar的安装与代码质量检测实例
说明:sonar依赖数据库. mysql优化 1.笔者使用的是mysql数据库.首先对mysql做简单的优化配置. [root@localhost bin]# cat /etc/my.cnf [mys ...
- Java代码质量监控工具Sonar安装
1. 代码质量七宗罪 Sonar是一个代码质量管理系统.它的帮助文档开篇明义,提出了代码质量的七宗罪.总结的比較到位.最好还是一看: 1. Bug和隐藏Bug(Bugs and Pot ...
- jenkins+sonarqube进行代码质量检测
JavaNeverGiveUp教程篇 用jenkins+sonarqube去检查代码是非常方便的,它能检查出代码中可能存在的一些问题,比如io流未关闭.空指针异常.死循环.代码不规范等问题. 1. 搭 ...
- 基于docker-compose搭建sonarqube代码质量检测平台
一.需求 在我们开发的过程中,难免有时候代码写的不规范,或存在一些静态的bug问题,这个时候一个良好的代码检查工具就很有必要,而sonarqube正好可以满足整个要求. 二. docker-compo ...
- 推荐个Java代码质量检测的利器 —— FindBugs
一.下载 插件的下载地址(sourceforge):FindBugs-Eclipse插件 二.安装 Eclipse插件的安装,就不多说了. 三.使用 1.找一个Project,选中它(也可以针对某个P ...
- PHP 代码质量检测工具的安装与使用
代码统计工具 PHPLOC安装:wget https://phar.phpunit.de/phploc.phar chmod +x phploc.phar sudo mv phploc.phar /u ...
- 从0到1一步步搭建代码质量检测系统~iOS
演示环境:Mac OSX10.12.2 Xcode8 先瞄一眼最终成果- 1.JDK,DBMS(演示环境使用Mysql) 2.创建sonar数据库和用户 mysql -u root -pCREATE ...
随机推荐
- npm 可执行模块的开发&&私服发布
备注: 大家日常在使用npm 安装依赖的时候有一些是命令行工具,比如vue-cli,具体的开发比较简单,同时 可以基于此开发一些脚手架,方便开发. 1. 项目初始化 npm init 备注:按照 ...
- baidu手机输入法:邂逅"吹神"的声场漫游
"十年,好久不见,兄妹,所有还好?年月如歌,你的背包.却仍然没有筛选.装满红玫瑰.人来人往,爱情搬运,纵使我成了K歌之王.也谢谢你.依然让我的全世界失眠. 孤单患者.不如不见,不要说 ...
- git忽略已经提交的文件【转载】
有时候我们添加.gitignore文件之前已经提交过了文件..gitignore只能忽略那些原来没有被track的文件(自添加以后,从未 add 及 commit 过的文件),如果某些文件已经被纳入了 ...
- Python学习总结之一 -- 基础篇
Python学习第一篇 一:写在前面 啊,最近我的新博客一直都没有更新学习内容了,只是最近一直都在忙着寻找实习机会(或许这只是一个借口,真实原因是我太懒惰了,改改改!).终于今天又投递了几个新的实习职 ...
- JAVA-Unit05: 视图、序列、索引 、 约束
Unit05: 视图.序列.索引 . 约束 视图 数据库对象之一 视图在SQL语句中体现的角色与表相同, 但它并非一张真实存在的表,它对应的 是一个查询语句的结果集. 创建一个查看10号部门员工信息的 ...
- Java并发-Runnable、Callable、Future、Future Task
Runnable: Runnable的代码非常简单,他是一个接口,且接口中只有一个方法,run(),创建一个类实现他,把一些费时操作写在其中,然后使用某个线程去执行该Runnable实现类即可实现多线 ...
- Java中的强制类型转换
例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢? 显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小.此时就需要通过强制类型转换来 ...
- python实战——文本挖掘+xgboost预测+数据处理+准确度计算整合版
if __name__=="__main__": '''============================先导入数据============================= ...
- Big Water Problem
链接:https://www.nowcoder.com/acm/contest/77/B来源:牛客网 Big Water Problem 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ ...
- 1135 Is It A Red-Black Tree
题意:给出k个二叉搜索树的前序序列,判断该树是否为红黑树. 红黑树的定义: 结点的颜色非红即黑 根结点的颜色必须是黑色 每个叶子结点(指的是空结点,图中并没有画出来)都是黑色的 如果某个结点为红色,则 ...