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}
配置完成;