配置前提:部署好了Jenkins鼓蜒、SonarQube痹换。(此處Jenkins、SonarQube是部署在同一臺(tái)機(jī)器上友酱,情況有不一樣的請(qǐng)自行修改相關(guān)配置)
一晴音、sonar-scanner安裝
????SonarQube Scanner,作為代碼掃描的工具,通過它將項(xiàng)目的代碼讀取并發(fā)送至SonarQube服務(wù)器中,才能讓SonarQube進(jìn)行代碼分析缔杉。
????wget? https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
????unzip? sonar-scanner-cli-3.0.3.778-linux.zip
? ? mv ?sonar-scanner-3.0.3.778-linux ?/home/jenkins/sonar-scanner
????配置連接Sonarqube
????vi? /home/jenkins/sonar-scanner/conf/sonar-scanner.properties
????sonar.host.url=http://HOST:9000
????sonar.sourceEncoding=UTF-8
? ? 如上就完成安裝了
二锤躁、jenkins的集成配置
1、Jenkins安裝插件(SonarQube Plugin)
2或详、配置讓jenkins和sonar結(jié)合在一起
3系羞、配置SonarQube Scanner
此步驟如無報(bào)錯(cuò)則說明正常郭计。
4、創(chuàng)建Jenkins項(xiàng)目椒振,并配置“源碼管理”和“構(gòu)建”
“源碼管理”配置(此步有疑問請(qǐng)參考http://www.reibang.com/p/bc9a1605a68e 的2.1)
“構(gòu)建”過程配置
sonar.projectKey=test_sonar
sonar.projectName=test_sonar
sonar.projectVersion=1.0
sonar.sources=./
sonar.sourceEncoding=UTF-8
sonar.java.binaries=./
備注:Scanner會(huì)自動(dòng)識(shí)別代碼語言昭伸,所以此處不需要定義開發(fā)語言。
????到此SonarQube就集成到Jenkins的作業(yè)中了澎迎,最后只需要將該項(xiàng)目添加到CICD中庐杨。
? ? SonarQube一般情況下代碼審查過程放置于CI之前,只需要添加到測試環(huán)境的流水化作業(yè)中即可夹供,沒必要集成到開發(fā)和正式環(huán)境中灵份。而且需要開發(fā)人員去制定代碼審查規(guī)則,否則幾乎沒什么用哮洽,原因是初始化審查規(guī)則不符合國情~~~填渠,一檢查會(huì)發(fā)現(xiàn)代碼中有無數(shù)個(gè)嚴(yán)重BUG。代碼審查規(guī)則制定完畢后鸟辅,建議將該工具交由測試人員來使用氛什,并驅(qū)動(dòng)開發(fā)去優(yōu)化代碼。
????下圖是我用java開源代碼進(jìn)行一下審查的結(jié)果匪凉,未定義代碼規(guī)則枪眉。