如何搭建sonar代码覆盖检查质量管理平台

SonarQube代码质量管理平台安装与使用_linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与
您所在的位置: >
SonarQube代码质量管理平台安装与使用
时间:&&来源:未知&&作者:linuxsir首页
Sonar是一个用于代码质量经管的开源平台,用于经管源代码的质量,能够从七个维度检测代码质量
经由过程插件方式,能够撑持包含java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等2十几种编程说话的代码质量经管与检测
sonarQube能带来甚么?
Developers' Seven Deadly Sins1.糟的庞杂度散布文件、类、设施等,假如庞杂渡过高将难以改动,这会使得开拓职员难以了解它们,且假如没有自动化的单位测试,关于顺序中的任何组件的改动都将能够致使需求周全的回归测试
2.反复明显顺序中包括大批复制粘贴的代码是质量低下的
sonar能够展现源码中反复严峻的处所
3.缺少单位测试
sonar能够很轻易地统计并展现单位测试笼盖率
4.没有代码规范 sonar能够经由过程PMD,CheckStyle,Findbugs等等代码法则检测对象标准代码编写5.没有足够的或许过量的正文 没有正文将使代码可读性变差,迥殊是当不成防止地涌现职员更动时,顺序的可读性将小幅降低 而过量的正文又会使得开拓职员将精力过量地破费正在朗读正文上,亦违反初志6.潜伏的bug
sonar能够经由过程PMD,CheckStyle,Findbugs等等代码法则检测对象检测出潜伏的bug
7.糟的设想(原文Spaghetti Design,意小利面式设想) 经由过程sonar能够找出轮回,展现包与包、类与类之间的彼此依附相关 能够检测自界说的架构法则 经由过程sonar能够经管第三方的jar包 能够行使LCOM4检测单个事故法则的利用状况 检测耦合
关于Spaghetti Design:http://docs.codehaus.org/display/SONAR/Spaghetti+Design
经由过程sonar能够无效检测以上正在顺序开拓进程中的七小成绩
SonarQube装置
预置前提1.已装置JAVA情况2.已装置有MySQL数据库
软件下载所在:http://www.sonarqube.org/downloads/下载SonarQube与SonarQube Runner中文补钉包下载:http://docs.codehaus.org/display/SONAR/Chinese+Pack
1.数据库设置装备摆设进入数据库饬令#mysql -u root -p
mysql& CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ mysql& CREATE USER 'sonar' IDENTIFIED BY 'sonar';mysql& GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';mysql& GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';mysql& FLUSH PRIVILEGES;
2.装置sonar与sonar-runner将下载的sonar-3.7.zip包解压至Linux某途径如/usr/local将下载的sonar-runner-dist-2.3.zip包解压某途径/usr/local添加SONAR_HOME、SONAR_RUNNER_HOME情况变量,并将SONAR_RUNNER_HOME插足PATH
点窜sonar设置装备摆设文件编撰&install_directory&/conf/sonar.properties文件,设置装备摆设数据库设置,默许已供应了各类数据库的撑持这里运用mysql,是以作废mysql模块的正文#vi sonar.properties
sonar.jdbc.username:
sonarsonar.jdbc.password:
sonarsonar.jdbc.url:
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
# Optional propertiessonar.jdbc.driverClassName:
com.mysql.jdbc.Driver
点窜sonar-runner的设置装备摆设文件切换至sonar-runner的装置目次下,点窜sonar-runner.properties依据实践运用数据库状况作废响应正文
#Configure here general information about the environment, such as SonarQube DB details for example#No information about specific project should appear here#----- Default SonarQube serversonar.host.url=http://localhost:9000#----- PostgreSQL#sonar.jdbc.url=jdbc:postgresql://localhost/sonar#----- MySQLsonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8#----- Oracle#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE#----- Microsoft SQLServer#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/SelectMethod=Cursor#----- Global database settingssonar.jdbc.username=sonarsonar.jdbc.password=sonar#----- Default source code encodingsonar.sourceEncoding=UTF-8#----- Security (when 'sonar.forceAuthentication' is set to 'true')sonar.login=adminsonar.password=admin
3.添加数据库驱动除Oracle数据库外,别的数据库驱动都默许已供应了,且这些已添加的驱动是sonar惟一撑持的,是以没有需求点窜假如是Oracle数据库,需求复制JDBC驱动至&install_directory&/extensions/jdbc-driver/oracle目次
4.发动效劳目次切换至sonar的&install_directory&/bin/linux-x86-64/目次,发动效劳#./sonar.sh start 发动效劳#./sonar.sh stop
中断效劳#./sonar.sh restart 重启效劳
至此,sonar就装置好了会见http:\\localhost:9000即可
5.sonar中文补钉包装置中文包装置装置中文补钉包能够经由过程会见http:\\localhost:9000,翻开sonar后,进入更新中央装置或许下载中文补钉包后,放到SONARQUBE_HOME/extensions/plugins目次,然后重启SonarQube效劳
sonar作为Linux效劳并开机自发动新建文件/etc/init.d/sonar,输出如下形式:
#!/bin/sh## rc file for SonarQube## chkconfig: 345 96 10# description: SonarQube system (www.sonarsource.org)#### BEGIN INIT INFO# Provides: sonar# Required-Start: $network# Required-Stop: $network# Default-Start: 3 4 5# Default-Stop: 0 1 2 6# Short-Description: SonarQube system (www.sonarsource.org)# Description: SonarQube system (www.sonarsource.org)### END INIT INFO/usr/bin/sonar $*
SonarQube开机自发动(Ubuntu, 32位):
sudo ln -s $SONAR_HOME/bin/linux-x86-32/sonar.sh /usr/bin/sonarsudo chmod 755 /etc/init.d/sonarsudo update-rc.d sonar defaults
SonarQube开机自发动(RedHat, CentOS, 64位):
sudo ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonarsudo chmod 755 /etc/init.d/sonarsudo chkconfig --add sonar
运用SonarQube Runner剖析源码
预置前提已装置SonarQube Runner且情况变量已设置装备摆设,即sonar-runner饬令可正在随便目次下履行
1.正在项目源码的根目次下建立sonar-project.properties设置装备摆设文件以Android项目为例:
sonar.projectKey=android-sonarqube-runnersonar.projectName=Simple Android project analyzed with the SonarQube Runnersonar.projectVersion=1.0sonar.sources=srcsonar.binaries=bin/classessonar.language=javasonar.sourceEncoding=UTF-8sonar.profile=Android Lint
注:要运用Android Lint法则剖析需求先会见http:\\localhost:9000更新中央添加Android Lint插件,使其能够剖析Android Lint法则
2.履行剖析切换到项目源码根目次,履行饬令# sonar-runner剖析胜利后会见http:\\localhost:9000即可检查剖析成效
分歧参数的意义:http://docs.codehaus.org/display/SONAR/Analysis+Parameters分歧项手段源码剖析示例下载:/SonarSource/sonar-examples/zipball/master
与IDE联系关系
最初,当然了,得与IDE相干联,能力更轻易地及时检查
以Eclipse为例,请见:http://docs.sonarqube.org/display/SONAR/SonarQube+in+Eclipse
sonarQube官网所在:http://www.sonarqube.org/sonarQube官方文档所在:http://docs.codehaus.org/display/SONAR/DocumentationsonarQube示例所在:http://nemo.sonarqube.org/
另两篇相干的文章:
设置装备摆设Sonar、Jenkins停止继续检查 /Linux/877.htm
sonarQube代码质量经管对象情况筹建条记 /Linux/878.htmSonarQube代码质量管理平台安装与使用
来源:open开发经验库
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检测单个任务规则的应用情况
检测耦合
关于Spaghetti Design:http://docs.codehaus.org/display/SONAR/Spaghetti+Design通过sonar可以有效检测以上在程序开发过程中的七大问题 
SonarQube安装
预置条件
1.已安装JAVA环境
2.已安装有MySQL数据库
软件下载地址:http://www.sonarqube.org/downloads/
下载SonarQube与SonarQube Runner
中文补丁包下载:http://docs.codehaus.org/display/SONAR/Chinese+Pack
1.数据库配置
进入数据库命令
#mysql -u root -p
mysql& CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ 
mysql& CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql& GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql& GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql& FLUSH PRIVILEGES;
2.安装sonar与sonar-runner
将下载的sonar-3.7.zip包解压至Linux某路径如/usr/local
将下载的sonar-runner-dist-2.3.zip包解压某路径/usr/local
添加SONAR_HOME、SONAR_RUNNER_HOME环境变量,并将SONAR_RUNNER_HOME加入PATH 
修改sonar配置文件
编辑&install_directory&/conf/sonar.properties文件,配置数据库设置,默认已经提供了各类数据库的支持
这里使用mysql,因此取消mysql模块的注释
#vi sonar.properties 
sonar.jdbc.username:
sonar.jdbc.password:
sonar.jdbc.url:
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
# Optional properties
sonar.jdbc.driverClassName:
com.mysql.jdbc.Driver
修改sonar-runner的配置文件
切换至sonar-runner的安装目录下,修改sonar-runner.properties
根据实际使用数据库情况取消相应注释
#Configure here general information about the environment, such as SonarQube DB details for example
#No information about specific project should appear here
#----- Default SonarQube server
sonar.host.url=http://localhost:9000
#----- PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
#----- MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
#----- Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
#----- Microsoft SQLServer
#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/SelectMethod=Cursor
#----- Global database settings
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
#----- Security (when 'sonar.forceAuthentication' is set to 'true')
sonar.login=admin
sonar.password=admin
3.添加数据库驱动
除了Oracle数据库外,其它数据库驱动都默认已经提供了,且这些已添加的驱动是sonar唯一支持的,因此不需要修改
如果是Oracle数据库,需要复制JDBC驱动至&install_directory&/extensions/jdbc-driver/oracle目录 
4.启动服务
目录切换至sonar的&install_directory&/bin/linux-x86-64/目录,启动服务
#./sonar.sh start
启动服务
#./sonar.sh stop
停止服务
#./sonar.sh restart 重启服务
至此,sonar就安装好了
访问http:\\localhost:9000即可 
5.sonar中文补丁包安装
中文包安装
安装中文补丁包可以通过访问http:\\localhost:9000,打开sonar后,进入更新中心安装
或者下载中文补丁包后,放到SONARQUBE_HOME/extensions/plugins目录,然后重启SonarQube服务 
sonar作为Linux服务并开机自启动
新建文件/etc/init.d/sonar,输入如下内容: 
# rc file for SonarQube
# chkconfig: 345 96 10
# description: SonarQube system (www.sonarsource.org)
### BEGIN INIT INFO
# Provides: sonar
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: SonarQube system (www.sonarsource.org)
# Description: SonarQube system (www.sonarsource.org)
### END INIT INFO
/usr/bin/sonar $*
SonarQube开机自启动(Ubuntu, 32位): 
sudo ln -s $SONAR_HOME/bin/linux-x86-32/sonar.sh /usr/bin/sonar
sudo chmod 755 /etc/init.d/sonar
sudo update-rc.d sonar defaults 
SonarQube开机自启动(RedHat, CentOS, 64位): 
sudo ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonar
sudo chmod 755 /etc/init.d/sonar
sudo chkconfig --add sonar 
使用SonarQube Runner分析源码 
预置条件
已安装SonarQube Runner且环境变量已配置,即sonar-runner命令可在任意目录下执行
1.在项目源码的根目录下创建sonar-project.properties配置文件
以android项目为例: 
sonar.projectKey=android-sonarqube-runner
sonar.projectName=Simple Android project analyzed with the SonarQube Runner
sonar.projectVersion=1.0
sonar.sources=src
sonar.binaries=bin/classes
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.profile=Android Lint
注:要使用Android Lint
规则分析需要先访问http:\\localhost:9000更新中心添加Android Lint插件,使其可以分析Android Lint规则
2.执行分析
切换到项目源码根目录,执行命令
# sonar-runner
分析成功后访问http:\\localhost:9000即可查看分析结果
不同参数的意思:
http://docs.codehaus.org/display/SONAR/Analysis+Parameters
不同项目的源码分析示例下载:
/SonarSource/sonar-examples/zipball/master 
与IDE关联 
最后,当然了,得与IDE相关联,才能更方便地实时查看 
以Eclipse为例,请见:http://docs.sonarqube.org/display/SONAR/SonarQube+in+Eclipse
附: 
sonarQube官网地址:http://www.sonarqube.org/
sonarQube官方文档地址:http://docs.codehaus.org/display/SONAR/Documentation
sonarQube示例地址:http://nemo.sonarqube.org/ 
网上另两篇相关的文章:/gao241/p/3190701.html
/open-source/1307345.html 
来自:http://blog.csdn.net/hunterno4/article/details/ 
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动SonarQube代码质量管理平台的配置与使用
一、SonarQube的配置(前提,先用admin用户登录) 1、 安装中文汉化包: Setting >> Update Center >> Available Plugins >> LOCALIZATION >> Chinese Pack >> Install
安装完汉化包之后需要重启SonarQube才能生效(重启前可顺便把CheckStyle、PMD等插件安装一下)
# /root/sonarqube/bin/linux-x86-64/sonar.sh restart Stopping SonarQube... Stopped SonarQube. Starting SonarQube... Started SonarQube. 重启完之后刷新SonarQube:http://192.168.4.221:9090/sonarqube/
汉化成功(注意,汉化包并没有完全汉化),重新登录 2、 MyEclipse/Eclipse中安装SonarQube插件的安装、配置、使用: http://docs.sonarqube.org/display/SONAR/SonarQube+in+Eclipse http://docs.sonarqube.org/display/SONAR/Installing+SonarQube+in+Eclipse http://docs.sonarqube.org/display/SONAR/Configuring+SonarQube+in+Eclipse http://docs.sonarqube.org/display/SONAR/Working+with+SonarQube+in+Eclipse (请参考官方文档操作,在此不作讲解,我们重点讲SonarQube结合Maven插件的使用) 3、 Maven分析器插件的配置与使用 http://docs.sonarqube.org/display/SONAR/Installing+and+Configuring+Maven 在Maven本地库中的settings.xml(我这里是settings_edu.xml)配置文件中的 节点中添加如下配置:
jdbc:mysql://192.168.4.221:3306/sonarqube?useUnicode=true&characterEncoding=utf8
http://192.168.4.221:9090/sonarqube
使用Maven分析器进行分析,命令: 纯Maven命令:mvn clean install sonar:sonar MyEclipse中执行:clean install sonar:sonar (如果你是第一次运行此命令,看执行日志你会发现它会先下载sonar-runner等插件) 成功执行完分析命令后便可到Web Server中查看代码质量分析结果数据。 4、 配置: (1) 配置 (2) 权限 (3) 系统 5、 质量配置介绍(切换默认配置) 6、 代码规则介绍(自定义规则) 7、 问题处理介绍(质量管理的体现) 8、 指表 9、 仪表盘(自定义)
最新教程周点击榜
微信扫一扫}

我要回帖

更多关于 sonar代码覆盖检查 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信