簡介:
Sonar是一個用于代碼質(zhì)量管理的開源平臺,用于管理源代碼的質(zhì)量,可以從七個維度檢測代碼質(zhì)量
通過插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語言的代碼質(zhì)量管理與檢測
sonarQube能干什么?
1.糟糕的復(fù)雜度分布
2.重復(fù)
3.缺乏單元測試
4.沒有代碼標(biāo)準(zhǔn)
5.沒有足夠的或者過多的注釋
6.潛在的bug
7.糟糕的設(shè)計(jì)(原文Spaghetti Design,意大利面式設(shè)計(jì))
SonarQube安裝
說明:此處略過java,mysql,jenkins安裝配置,如果不會,請百度學(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啟動即可
3、訪問http://ip:9000,出現(xiàn)如下界面即為安裝成功。
Paste_Image.png
4、管理員登錄(默認(rèn)用戶名密碼admin),管理員區(qū)域找到chinese Pack,安裝后重啟,及漢化完成。
Paste_Image.png
5、配置mysql數(shù)據(jù)庫,管理員建數(shù)據(jù)庫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ī)使用請參考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—>保存
Paste_Image.png
Paste_Image.png
3、配置SonarQube服務(wù)器
系統(tǒng)管理?系統(tǒng)設(shè)置—>SonarQube servers?保存
(其中這里的 Server authentication token不是密碼,需要在服務(wù)器端生成)
Paste_Image.png
4、登錄SonarQube,配置—>權(quán)限?用戶—>管理員—>generate Tokens。生成后賦值到3中的位置。
Paste_Image.png
配置sonarqube,關(guān)閉經(jīng)用SCM傳感器配置為是,這一步操作完畢,jenkins才能真正使用sonarqube Server服務(wù)器,否則,否則質(zhì)量分析時會出錯
Paste_Image.png
5、jenkins中持續(xù)集成項(xiàng)目整合sonarQube
{項(xiàng)目}—>配置?Add pre-build step
Paste_Image.png
配置如下:
Paste_Image.png
配置文件sonar.properties示例:
#required metadata
#projectKey項(xiàng)目的唯一標(biāo)識,不能重復(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
6、大功告成
SonarQube設(shè)置的一些細(xì)節(jié)
Paste_Image.png
Paste_Image.png