配置 sonar-gerrit plugins steps
pre-condition:
1. Sonarqube(5.5及以上,本文使用的版本为6.1.3)
关于如何安装配置Sonarqube,请参考其他文档
2. Gerrit(2.11及以上,本文使用版本为2.13.2)
关于如何安装配置Gerrit,请参考其他文档
3. Jenkins(1.7及以上,本文使用版本为2.35)
关于如何安装配置Jenkins,请参考其他文档
4. Gerrit-Trigger (本文使用版本为2.23)
5. Sonar-scanner (本文使用版本为2.8)
6. sonar-gerrit-plugin(本文使用版本为1.0.7.6)
7. sonar-gerrit-plugin-2.3.0.jar

Steps:
1. sonar-gerrit-plugin-2.3.0.jar 将jar包复制到$SONARQUBE_HOME/extensions/plugins/下

2. 以admin用户登录sonarqube dashboard -> Administration -> Security -> Users

3. 选择要使用的user生成user token,该token作为jenkins登录sonarqube的用户凭证,保存好token。
4. 登录jenkins -> 系统管理 -> 系统设置 -> SonarQube servers
Name:${SonarQube servername}
Server URL : $SONARQUBE_URL
Server version : 5.3 or higher
Server authentication token:填入step3生成的token
点击保存

5. 以admin用户登录jenkins -> 系统管理 -> Gerrit Trigger
参考jenkins-gerrit-config.md内容配置
*****注意*****
点击高级
check Use REST API
Gerrit HTTP Username(jenkins发送sonarqube扫描结果至gerrit使用的账户)
Gerrit HTTP Password(jenkins发送sonarqube扫描结果至gerrit使用的账户)
check Enable Code-Review
check Enable Verified
点击保存

6. 以admin用户jenkins -> 系统管理 -> Global Tool Configuration
SonarQube Scanner -> SonarQube Scanner安装
SONAR_RUNNER_HOME ${SONAR_RUNNER_HOME}
点击保存

7. 创建jenkins job
新建-> 新建一个maven风格的项目
源码管理:选择Git
Repository URL: gerrit 代码仓库
Credentials:选择连接gerrit账号
Branches to build:*/master
构建触发器
选择Gerrit Event
Gerrit Trigger :
Choose a Server 选择step5的gerrit servername
Trigger on : 根据项目需要修改
参考jenkins-gerrit-config.md内容配置

8. Post Steps 增加Execute SonarQube Scanner
其他保留设为空
Additional arguments 增加以下配置:
-X (打印debug级别日志)
-DGERRIT_SCHEME=http (以http协议连接gerrit)
-DGERRIT_HTTP_AUTH_SCHEME=digest (gerrit默认的http认证)
-DGERRIT_HOST=gerrit.me (gerrit host)
-DGERRIT_HTTP_PORT=80  (访问gerrit web的端口)
-DGERRIT_HTTP_USERNAME=$gerrit_user (jenkins登录gerrit使用的账号)
-DGERRIT_HTTP_PASSWORD=$password (jenkins登录gerrit使用的账号)
-Dsonar.analysis.mode=preview (要生成sonar-gerrit-plugin要求的报告,必须使用preview mode)
-Dsonar.issuesReport.html.enable=true (sonar报告生成html格式)
-Dsonar.report.export.path=sonar-report.json (sonarqube报告的格式)

9. 增加构建后操作 Post Action
SonarQube Settings:
SonarQube URL: SonarQube 的访问地址
SonarQube report path: .sonar/sonar-report.json (sonarscanner扫描完成后会在workspace下生成.sonar文件夹,sonar-report.json报告存放在.sonar下)
Filter Settings:
Report issues having severity level higher or equal to:Major (反馈至gerrit的时候的issue 级别,可修改)
其他保持默认,点击保存

举例如下:
当向gerrit trigger监听的project/branch发生变化时,即可触发jenkins job execution, 执行效果参考
https://wiki.jenkins-ci.org/display/JENKINS/Sonar+Gerrit

jenkins wiki写的比较简略,其他隐藏条件没有写的很清楚
花了一天时间,查了各种github, stackoverflow,还拉了插件源码下来,终于搞定了,写个blog纪念一下。

补充踩过的坑:

如果不用admin账户进行操作,确保以下几点:

1. jenkins用于gerrit的账户属于NonInactive Users

2. 监听的project继承的user group必须包含jenkins user且属于owner权限

另一坑:

jenkins管理员邮箱必须与smtp认证的账号保持一致,才能发邮件

sonar-gerrit plugin配置的更多相关文章

  1. Gerrit - 初始配置

    1 - 插件管理 1.1 下载并安装插件 以reviewers插件为例. 在GerritForge(https://gerrit-ci.gerritforge.com/),找到对应gerrit 版本的 ...

  2. gerrit安装配置记录

    gerrit安装配置 java -jar gerrit-2.13.5.war init -d gerrit Authentication method [OPEN/?]: htt Install Ve ...

  3. Gerrit安装配置

    环境: CentOS 1611 + gerrit-2.11.4 (review.openstack.org) 1. 安装java1.8 (>1.7) [root@review ~]# yum i ...

  4. Jetty Maven Plugin配置

    官方文档:http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#maven-config-https 1 ...

  5. Intellij修改archetype Plugin配置

    Maven archetype plugin为我们提供了方便的创建 project功能,Archtype指我们项目的骨架,作为项目的脚手架. 如fornt end的yo之类.我们能够通过简单的一行控制 ...

  6. VSS Plugin配置FAQ(翻译)[转]

    前言(译者) 就个人的成长历程来说,刚参加工作用的是 CVS ,前前后后有接近三年的使用体验,从今年开始使用 SVN .总的来说我更喜欢 SVN ,用起来的确很方便,例如在本地源代码文件中加一个空格然 ...

  7. Jenkins邮件扩展插件Email Extension Plugin配置使用

    1.在管理插件中搜索并安装邮件扩展插件Email Extension Plugin: 2.在任务中增加构建后操作步骤,选择Editable Email Notification; 3.在高级中Add ...

  8. Gerrit - 安装配置GitWeb

    1 - GitWeb简介 GitWeb是一个支持在Web页面上查看代码以及提交信息的工具. 安装GitWeb工具并且集成到Gerrit中,就可以直接在Gerrit的项目列表中查看项目的代码信息. 2 ...

  9. android-studio的gradle plugin配置相关的一些记录

    感觉就是越高的Gradle版本对应的plugin越高. 你妹的,是不是2.10版本低于2.2版本,我还以为是2.10版本高于2.8.2.9版本呢.每次用2.10版本构建,用1.2.2等都不行.提示最低 ...

随机推荐

  1. Linux(CentOS)上面搭建Nginx环境

    总体上来说,Linux 这个系统其实挺好用的 除了看不见界面,但是用起来确实是比Window好用太多了,不废话了,直接说搭建环境的步骤! 安装Nginx 编译运行时的环境 参考博客:http://ww ...

  2. Ubuntu14.04下 升级 cmake

    参考: How to install cmake 3.2 on ubuntu 14.04? Ubuntu14.04下升级cmake 1.通过PPA安装: $ sudo apt-get install ...

  3. 在 JSDOM v11 中使用jQuery

    在JSDOM v11中使用jQuery 从v10开始,jsdom提供了更灵活的API. https://swashata.me/blog/use-jquery-jsdom-v11/ const tes ...

  4. 51nod 1215 数组的宽度(单调栈)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1215 题意: 思路: 计算出以第i个数为最大值的区间范围,l_max[i ...

  5. 【BZOJ】2815: [ZJOI2012]灾难

    简要题意: 给一个有向无环图,问每个节点删掉之后会导致多少个点不可达. 似乎以前拿来考过.... 我们定义一棵树,它满足对应点造成的灭绝值即为当点的子树大小-1 按照被捕食者--->捕食者的关系 ...

  6. c++ cmakelist 详解

    基本元素 首先cmaklist必须包括以下几个部分: #工程名 project(study_case) #cmake最低版本需求 cmake_minimum_required(VERSION 2.8. ...

  7. Qt532界面.ZC测试

    ZC:Delphi中只要随便拖几个控件,设置一下属性就OK了.但是,Qt中 貌似没有 方便的方式来做这个... ZC:目前的解决方案是:Qt中 拖几个控件,然后点 工具条里面的 "栅格布局( ...

  8. [原][粒子特效][spark]发射器emitter

    深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html group添加emitter的方式: eimtter: 上图是spark源码 ...

  9. leecode第一百四十一题(环形链表)

    /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...

  10. java web 方面

    1.Tomcat的优化经验. 2.http请求的GET与POST方式的区别. (1)get是从服务器上获取数据,post是向服务器传送数据. (2)get是把参数数据队列加到提交表单的ACTION属性 ...