Sonar(SonarQube)是一個開源平台,用于管理源代碼的品質。Sonar 不隻是一個品質資料報告工具,更是代碼品質管理平台。支援的語言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。
主要特點:
代碼覆寫:通過單元測試,将會顯示哪行代碼被選中
改善編碼規則
搜尋編碼規則:按照名字,插件,激活級别和類别進行查詢
項目搜尋:按照項目的名字進行查詢
對比資料:比較同一張表中的任何測量的趨勢

架構圖:
1.首先需要配置Gerrit Trigger 插件:
2.進行配置:
3.Gerrit調整配置,進行測試已經可以通路。
4.插件安裝完成夠進行配置gerrit event。
5.配置Gerrit Project
6.檢查Query
7.檢查是否可以成功檢視送出的代碼。
8.發現已經送出代碼後自動build。
9.配置Sonar生成後的報告自動發送到郵箱;
10.調用GERRIT_PATCHSET_UPLOADER_EMALL 參數;
11. Shell 配置部分;
cd /export/sonar-scanner/bin &&
./sonar-scanner -e -Dsonar.host.url=http://localhost:9000 -Dsonar.scm.disabled=true -Dsonar.language=java -Dsonar.projectName=ai-access -Dsonar.projectVersion=1.0.0 -Dsonar.projectKey=ai-access -Dsonar.sources=/export/jenkins/workspace/ai-access -Dsonar.projectBaseDir=/export/jenkins/workspace/ai-access -Dsonar.java.binaries=target/sonar -Dsonar.java.binaries=src -Dsonar.java.source=1.8
echo "SVN版本号:${SVN_REVISION}"
git --version
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
sonar_url=http://192.168.180.251:9000/dashboard?id=ai-access
rm -f ${JOB_NAME}.pdf
#郵件需要包含的内容寫入臨時檔案
echo "${JOB_NAME}-第${BUILD_NUMBER}次代碼掃描報告" > mail.txt
echo "項目名稱 : ${JOB_NAME}" >> mail.txt
echo "建構編号 : 第${BUILD_NUMBER}次建構" >> mail.txt
echo "代碼路徑 : ${SVN_URL}" >> mail.txt
echo "代碼路徑 : ${WORKSPACE}" >> mail.txt
echo "建構日志 : ${BUILD_URL}consoleText" >> mail.txt
echo "建構Url : ${JOB_URL}" >> mail.txt
echo "SonarQube報告位址(點選浏覽): ${sonar_url}" >> mail.txt
sudo mail -s "=?UTF-8?B?`echo ${JOB_NAME}第${BUILD_NUMBER}次代碼掃描報告 | base64`?=" ${GERRIT_PATCHSET_UPLOADER_EMAIL} < mail.txt ${sonar_url}
sudo mail -s "=?UTF-8?B?`echo ${JOB_NAME}第${BUILD_NUMBER}次代碼掃描報告 | base64`?=" ${send1} < mail.txt ${sonar_url}
配置完成;