sonar-gerrit plugin配置
配置 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配置的更多相关文章
- Gerrit - 初始配置
1 - 插件管理 1.1 下载并安装插件 以reviewers插件为例. 在GerritForge(https://gerrit-ci.gerritforge.com/),找到对应gerrit 版本的 ...
- gerrit安装配置记录
gerrit安装配置 java -jar gerrit-2.13.5.war init -d gerrit Authentication method [OPEN/?]: htt Install Ve ...
- Gerrit安装配置
环境: CentOS 1611 + gerrit-2.11.4 (review.openstack.org) 1. 安装java1.8 (>1.7) [root@review ~]# yum i ...
- Jetty Maven Plugin配置
官方文档:http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#maven-config-https 1 ...
- Intellij修改archetype Plugin配置
Maven archetype plugin为我们提供了方便的创建 project功能,Archtype指我们项目的骨架,作为项目的脚手架. 如fornt end的yo之类.我们能够通过简单的一行控制 ...
- VSS Plugin配置FAQ(翻译)[转]
前言(译者) 就个人的成长历程来说,刚参加工作用的是 CVS ,前前后后有接近三年的使用体验,从今年开始使用 SVN .总的来说我更喜欢 SVN ,用起来的确很方便,例如在本地源代码文件中加一个空格然 ...
- Jenkins邮件扩展插件Email Extension Plugin配置使用
1.在管理插件中搜索并安装邮件扩展插件Email Extension Plugin: 2.在任务中增加构建后操作步骤,选择Editable Email Notification; 3.在高级中Add ...
- Gerrit - 安装配置GitWeb
1 - GitWeb简介 GitWeb是一个支持在Web页面上查看代码以及提交信息的工具. 安装GitWeb工具并且集成到Gerrit中,就可以直接在Gerrit的项目列表中查看项目的代码信息. 2 ...
- android-studio的gradle plugin配置相关的一些记录
感觉就是越高的Gradle版本对应的plugin越高. 你妹的,是不是2.10版本低于2.2版本,我还以为是2.10版本高于2.8.2.9版本呢.每次用2.10版本构建,用1.2.2等都不行.提示最低 ...
随机推荐
- qt QRegExp使用(搬运工)
设置正则表达式. 类似下面的 QRegExp 这里的用法就是用来检测QString等字符串错误的,例如文件名里面最好就不出现<>|/\:等,所以可以如下定义QRegExp rx(" ...
- 今天中了一个脚本病毒。把我的所有 html 加了 vbs 脚本,WriteData 是什么鬼?
今天中了一个脚本病毒.把我的所有 html 加了 vbs 脚本: WriteData 是什么鬼? <SCRIPT Language=VBScript><!-- DropFileNam ...
- SAP 供应商/客户的冻结及其删除操作
SAP 供应商/客户的冻结及其删除操作 在SAP中,有所谓的财务供应商(Tcode:FK01)和后勤供应商(Tcode:XK01),供应商和客户主数据包括一般数据/公司代码数据/采购组织|销售范围三方 ...
- 微信小程序之倒计时插件 wxTimer
微信小程序之倒计时插件 wxTimer 介绍: 用于在微信小程序中进行倒计时的组件. 功能: 1.最基础的当然就是倒计时功能了. 2.可以设置倒计时结束后执行的事件. 3.可以设置倒计时执行过程中 ...
- 每日质量NPM包复制_copy-to-clipboard
一.copy-to-clipboard 官方定义: Simple module exposing copy function 理解: 一个超级简单的复制功能,并且这种方法适用于通过别的事件触发复制功能 ...
- 【BZOJ】4008: [HNOI2015]亚瑟王
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4008 这题主要在于:先算概率,再算期望! 一轮一轮的计算似乎很复杂,每一轮它其实是可以看作 ...
- JAVA中使用浮点数类型计算时,计算精度的问题
标题 在Java中实现浮点数的精确计算 AYellow(原作) 修改 关键字 Java 浮点数 精确计算 问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...
- 切片对象的demo
a = slice(, ) s = 'HelloWorld' print(a.indices(len(s))) for i in range(*a.indices(len(s))): print(s[ ...
- dml语句和ddl语句 区别
delete from user删除所有记录,属于dml语句,一条记录一条记录删除.事务可以作用在dml语句上的 truncate table user;删除所有记录,属于ddl语句,将表删除,然后重 ...
- Java代理机制之初见(理解及实现)
都知道Java中的Spring,有一重要思想:AOP,实现原理也就是Java的动态代理机制.初见代理这个名词时,觉得生活中常有代理的这一说法. 那么,在Java中,代理又是什么呢?它又是如何实现的?实 ...