簡(jiǎn)介:
Sonar是一個(gè)用于代碼質(zhì)量管理的開(kāi)源平臺(tái),用于管理源代碼的質(zhì)量鼎天,可以從七個(gè)維度檢測(cè)代碼質(zhì)量
通過(guò)插件形式簿废,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語(yǔ)言的代碼質(zhì)量管理與檢測(cè)
sonarQube能干什么?
1.糟糕的復(fù)雜度分布
2.重復(fù)
3.缺乏單元測(cè)試
4.沒(méi)有代碼標(biāo)準(zhǔn)
5.沒(méi)有足夠的或者過(guò)多的注釋
6.潛在的bug
7.糟糕的設(shè)計(jì)(原文Spaghetti Design艺配,意大利面式設(shè)計(jì))
SonarQube安裝
說(shuō)明:此處略過(guò)java钢猛,mysql伙菜,jenkins安裝配置轩缤,如果不會(huì)命迈,請(qǐng)百度學(xué)習(xí)。本文主要講解sonarQube安裝及與jenkins的整合
1火的、SonarQube6.2下載地址:https://www.sonarqube.org/downloads/
(下載包中包含各種系統(tǒng)下的安裝腳本壶愤,本人選擇用linux下安裝)
2、解壓后馏鹤,找到sonarqube-6.2/bin/linux-x86-64目錄下征椒,執(zhí)行./sonar.sh啟動(dòng)即可
3、訪問(wèn)http://ip:9000,出現(xiàn)如下界面即為安裝成功湃累。
4勃救、管理員登錄(默認(rèn)用戶名密碼admin),管理員區(qū)域找到chinese Pack治力,安裝后重啟蒙秒,及漢化完成。
5宵统、配置mysql數(shù)據(jù)庫(kù)晕讲,管理員建數(shù)據(jù)庫(kù)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瓢省、如果是本機(jī)使用請(qǐng)參考http://www.cnblogs.com/qiaoyeye/p/5249786.html,本文主要介紹與jenkins的集成痊班。
Jenkiins配置使用sonarQube
1勤婚、安裝 SonarQube Plugin插件,系統(tǒng)管理?插件管理—>可選插件—>SonarQube Plugin?安裝即可涤伐。
2馒胆、配置SonarQube Scanner荆永,系統(tǒng)管理—>Global Tool Configuration?SonarQube Scanner?SonarQube Scanner安裝—>選擇2.8—>保存
3、配置SonarQube服務(wù)器
系統(tǒng)管理?系統(tǒng)設(shè)置—>SonarQube servers?保存
(其中這里的 Server authentication token不是密碼国章,需要在服務(wù)器端生成)
4具钥、登錄SonarQube,配置—>權(quán)限?用戶—>管理員—>generate Tokens液兽。生成后賦值到3中的位置骂删。
配置sonarqube,關(guān)閉經(jīng)用SCM傳感器配置為是四啰,這一步操作完畢宁玫,jenkins才能真正使用sonarqube Server服務(wù)器,否則柑晒,否則質(zhì)量分析時(shí)會(huì)出錯(cuò)
5欧瘪、jenkins中持續(xù)集成項(xiàng)目整合sonarQube
{項(xiàng)目}—>配置?Add pre-build step
配置如下:
配置文件sonar.properties示例:
#required metadata
#projectKey項(xiàng)目的唯一標(biāo)識(shí),不能重復(fù)
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