简介:
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量
通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测
sonarQube能干什么?
1.糟糕的复杂度分布
2.重复
3.缺乏单元测试
4.没有代码标准
5.没有足够的或者过多的注释
6.潜在的bug
7.糟糕的设计(原文Spaghetti Design,意大利面式设计)
SonarQube安装
说明:此处略过java,mysql,jenkins安装配置,如果不会,请百度学习。本文主要讲解sonarQube安装及与jenkins的整合
1、SonarQube6.2下载地址:https://www.sonarqube.org/downloads/
(下载包中包含各种系统下的安装脚本,本人选择用linux下安装)
2、解压后,找到sonarqube-6.2/bin/linux-x86-64目录下,执行./sonar.sh启动即可
3、访问http://ip:9000,出现如下界面即为安装成功。
4、管理员登录(默认用户名密码admin),管理员区域找到chinese Pack,安装后重启,及汉化完成。
5、配置mysql数据库,管理员建数据库sonarqube,修改{sonardir}/conf/sonar.properties,配置如下(示例):
sonar.jdbc.url=jdbc:mysql://10.168.16.116:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=devApp2013
6、如果是本机使用请参考http://www.cnblogs.com/qiaoyeye/p/5249786.html,本文主要介绍与jenkins的集成。
Jenkiins配置使用sonarQube
1、安装 SonarQube Plugin插件,系统管理插件管理—>可选插件—>SonarQube Plugin安装即可。
2、配置SonarQube Scanner,系统管理—>Global Tool ConfigurationSonarQube ScannerSonarQube Scanner安装—>选择2.8—>保存
3、配置SonarQube服务器
系统管理系统设置—>SonarQube servers保存
(其中这里的 Server authentication token不是密码,需要在服务器端生成)
4、登录SonarQube,配置—>权限用户—>管理员—>generate Tokens。生成后赋值到3中的位置。
配置sonarqube,关闭经用SCM传感器配置为是,这一步操作完毕,jenkins才能真正使用sonarqube Server服务器,否则,否则质量分析时会出错
5、jenkins中持续集成项目整合sonarQube
{项目}—>配置Add pre-build step
配置如下:
配置文件sonar.properties示例:
#required metadata
#projectKey项目的唯一标识,不能重复
sonar.projectKey=xjglxt
sonar.projectName=xjglxt
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.modules=java-module,javascript-module,html-module
# Java module
java-module.sonar.projectName=Java Module
java-module.sonar.language=java
# .表示projectBaseDir指定的目录
java-module.sonar.sources=.
java-module.sonar.projectBaseDir=src
sonar.binaries=classes
# JavaScript module
javascript-module.sonar.projectName=JavaScript Module
javascript-module.sonar.language=js
javascript-module.sonar.sources=js
javascript-module.sonar.projectBaseDir=webRoot
# Html module
html-module.sonar.projectName=Html Module
html-module.sonar.language=web
html-module.sonar.sources=pages
html-module.sonar.projectBaseDir=webRoot
sonar.projectKey=org.codehaus.sonar:php-sonar-runner-unit-tests
sonar.projectName=PHP project analyzed with the SonarQube Runner reusing PHPUnit reports
sonar.projectVersion=1.0
sonar.sources=src
sonar.tests=tests
sonar.language=php
sonar.sourceEncoding=UTF-8
# Reusing PHPUnit reports
sonar.php.coverage.reportPath=reports/phpunit.coverage.xml
sonar.php.tests.reportPath=reports/phpunit.xml