配置 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. VHDL 乐曲演奏电路设计

    前言 无源蜂鸣器在直流信号下不会响,需要方波驱动.输入不同频率的方波会发出不同音调的声音,方波的幅值决定了声音的响度. 目标 乐曲发生电路在节拍(4Hz)的控制下根据乐谱产生合适的分频系数.分频器根据 ...

  2. HDU 3400 Line belt (三分套三分)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=3400 题意: 有两条带子ab和cd,在ab上的速度为p,在cd上的速度为q,在其它地方的速度为r.现 ...

  3. 无法获取未定义或 null 引用的属性“contentWindow”

    在iframe 中有时候 这样使用contentWindow 会报   无法获取未定义或 null 引用的属性“contentWindow”   这种情况 我是在IE中遇到 其他浏览器一切正常. pa ...

  4. Qt5学习记录:QString与int值互相转换

    1)QString转int 直接调用toInt()函数 例: QString str("100"); int tmp = str.toInt(); 或者: bool ok; QSt ...

  5. unity3d 加载优化建议 总结 from 侑虎科技

    第一部分 我们对于纹理资源的加载建议如下: 1.严格控制RGBA32和ARGB32纹理的使用,在保证视觉效果的前提下,尽可能采用“够用就好”的原则,降低纹理资源的分辨率,以及使用硬件支持的纹理格式. ...

  6. SqlParameter的两种用法【二】

    private void Loadprovince() { string sql = "select * from Tables where ArealdPid=@pid"; /第 ...

  7. [原][osgEarth]在osgearth中添加相机路径动画

    在osg中添加相机动画路径请参考:http://www.cnblogs.com/lyggqm/p/8075277.html 这里的代码是在osgearth中添加相机动画路径漫游器: #include ...

  8. IPC 之 Messenger 的使用

    一.概述 Messenger 是一种轻量级的 IPC 方案,它的底层实现是 AIDL ,对 AIDL 进行了封装,方便了对它的使用.Messenger 一次只处理一个请求,所以在服务端不用考虑线程同步 ...

  9. 用 JavaScript 将网站后台的数据变化实时更新到前端

    1.ajax短连接:客户端每隔一秒钟发一次请求,服务器收到请求后会立刻返回结果,不管有没有新数据.2.ajax长连接:客户端发送一次请求,服务器端收到请求后查询有没有新数据,如果没有新数据就阻塞这个请 ...

  10. Java se基础(类的属性及关键字)

    public:说明该类的访问类型是公有的,它生成的对象能被其他的对象调用! abstract:用来声明抽象类! final;如果一个类被声明成final类型,那么就不能再由它派生出子类. 可以简单的看 ...