Linux下SonarQube代码质量平台的安装和使用方法
Sonar简介:
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量
通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测
sonarQube能带来什么?
Developers’ Seven Deadly Sins
1.糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试
2.重复
显然程序中包含大量复制粘贴的代码是质量低下的
sonar可以展示源码中重复严重的地方
3.缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率
4.没有代码标准
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写
5.没有足够的或者过多的注释
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降
而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷
6.潜在的bug
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug
7.糟糕的设计(原文Spaghetti Design,意大利面式设计)
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系
可以检测自定义的架构规则
通过sonar可以管理第三方的jar包
可以利用LCOM4检测单个任务规则的应用情况
检测耦合
下面介绍一下安装和使用方法:
1. 下载并安装Jdk。
不做太多介绍大家可以参考:http://www.cnblogs.com/owenma/p/6139860.html
2. 下载安装Mysql。
不做太多介绍大家可以参考:http://www.cnblogs.com/owenma/p/6394477.html
3. 下载 SonarQube和Sonar scanner。
SonarQube: http://www.sonarqube.org/downloads/
Sonar scanner: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
4.数据库配置
下载好所有的安装包之后首先配置数据库:
进入数据库命令
5.安装sonar与sonar-scanner
将下载的sonarqube-6.7.zip包解压至Linux某路径如/usr/local
将下载的sonar-scanner-cli-3.0.3.778-linux.zip包解压某路径/usr/local
配置环境变量
启动服务
/usr/local/sonarqube-6.7/bin/linux-x86-64/sonar.sh start
目录切换至sonar的/bin/linux-x86-64/目录,启动服务
#./sonar.sh start 启动服务
#./sonar.sh stop 停止服务
#./sonar.sh restart 重启服务
至此,sonar就安装好了
访问http:\localhost:9000即可
sonar中文补丁包安装
安装中文补丁包可以通过访问http:\localhost:9000,打开sonar后,进入更新中心安装
搜索chinese Pack,安装中文语言包
或者下载中文补丁包后,放到SONARQUBE_HOME/extensions/plugins目录,然后重启SonarQube服务
sonar-scanner:
/usr/local/sonar-scanner-3.0.3/bin
把以下配置加到:/etc/profile
SONAR_RUNNER_HOME=/usr/local/sonar-scanner-3.0.3
PATH=$SONAR_RUNNER_HOME/bin:$PATH
export SONAR_RUNNER_HOME
export PATH
然后执行source /etc/profile
修改sonar配置文件
编辑/conf/sonar.properties文件,配置数据库设置,默认已经提供了各类数据库的支持
这里使用mysql,因此取消mysql模块的注释
#vi sonar.properties
修改sonar-runner的配置文件
切换至sonar-runner的安装目录下,
修改sonar-runner.properties
根据实际使用数据库情况取消相应注释 目前最新版好像只配一个URL。
6.使用SonarQube Runner分析源码
预置条件
已安装SonarQube Runner且环境变量已配置,即sonar-runner命令可在任意目录下执行
比如:sonar-runner -v
1.在项目源码的根目录下创建sonar-project.properties配置文件
以Java项目为例:
2.执行分析
切换到项目源码根目录,执行命令
# sonar-runner
分析成功后访问http:\localhost:9000即可查看分析结果.
Linux下SonarQube代码质量平台的安装和使用方法的更多相关文章
- Linux中 SonarQube代码质量管理平台以及C++插件安装
SonarQube是管理代码质量一个开源平台,可以快速的定位代码中潜在的或者明显的错误. SonarQube安装 1.环境准备 (1)sonarQube 下载地址https://www.sonarqu ...
- Linux中 SonarQube代码质量管理平台安装
SonarQube是管理代码质量一个开源平台,可以快速的定位代码中潜在的或者明显的错误. SonarQube安装 1.环境准备 (1)sonarQube 下载地址https://www.sonarqu ...
- SonarQube代码质量管理平台 的安装、配置与使用
SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 准备工作: 1.jdk(不再介绍) 2.sonarqube:ht ...
- 持续集成篇-- SonarQube代码质量管理平台的安装
视频教程:http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53 IP:192.168.4.221 环境:CentOS 6 ...
- SonarQube代码质量管理平台介绍与搭建
前 言 1.SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质量(为什么要用SonarQube): (1) 复杂度分布(complexity):代码复 ...
- SonarQube代码质量管理平台比较好的搭建和使用资料
http://www.voidcn.com/blog/lidujun1028/article/p-3831235.html Sonar (SonarQube)是一个开源平台,用于管理源代码的质量. ...
- Linux下查看mysql、apache是否安装,安装,卸载等操作
Linux下查看mysql.apache是否安装,并卸载. 指令 ps -ef|grep mysql 得出结果 root ? :: /bin/sh /usr/ ...
- Linux下SVN服务器安装配置及客户端安装说明
原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...
- linux下MySQL 5.6源码安装
linux下MySQL 5.6源码安装 1.下载:当前mysql版本到了5.6.20 http://dev.mysql.com/downloads/mysql 选择Source Code 2.必要软件 ...
随机推荐
- 新概念英语(1-29)Come in, Amy.
How must Amy clean the floor? A:Come in, Amy. Shut the door, please. This bedroom's very untidy. B:W ...
- python入门(11)条件判断和循环
python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: ag ...
- java中数组、list、泛型集合的长度
1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这 ...
- leetcode算法:Reshape the Matrix
In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...
- PyQt5--基础篇:用eric6工具实现三级联动效果
今天给大家介绍下python gui界面的三级联动效果,我们用工具eric6来实现,先看下效果图. 首先我们先创建项目linkage,再新建窗体进入到Qt设计师工具开始设计界面,完成后保存并退出. 在 ...
- js常用的数组方法
1.创建数组的基本方法: 1.1 空数组 var obj=new Array(); 1.2 指定长度数组 var obj=new Array(size); ...
- AOP及专有名词通俗解答
AOP面向切面编程,是一种编程思想,并不是Spring专有,Spring是封装代理模式完成,之前的博客中也写到了关于AOP的文章,Filter和代理,请见<以此之长,补彼之短----AOP(Fi ...
- MySQL之SQL语句的优化
仅供自己学习 结论写在前面: 1.尽量避免进行全表扫描,可以给where和order by涉及的列上建立索引 2.尽量在where子句中使用 !=或<>操作符,因为这样会导致引擎放弃索引而 ...
- C# 传统四舍五入保留两位小数(网上流传好多错误的版本)
关于C#里面的Math.Round,很多人都会用到,而且以为是四舍五入,其实不是这样的: C#里面的Math.Round是符合IEEE标准的“四舍五入”,其实是五舍六入. 网上好多流传的下面这种方式实 ...
- 同步IO,异步IO,阻塞IO,非阻塞IO
同步(synchronous):一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行 #所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回.按照这个定义, 其实 ...