博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次Sonar执行失败的修复
阅读量:6501 次
发布时间:2019-06-24

本文共 922 字,大约阅读时间需要 3 分钟。

  hot3.png

  1. 前提      

在提高代码质量方面公司采用的是Jenkins+Sonar的方案,通过设定扫描规则对现有代码工程进行扫描。代码扫描后会产生不同级别的问题,例如Bugs、漏洞、坏味道等。针对每个工程的发布是用Jenkins进行执行的,在代码每次发布的时候都会触发Sonar扫描配置的Jenkins用于对新增代码的问题汇总。

    2.出现的问题

某天质量部同事发企业消息,说我们有个工程的Sonar扫描任务很久都没有执行成功过了,看下是什么问题导致的。当时简单看了一下根据Jekins但是执行的日志看以为是代码文件的行数较大,被Sonar的某个规则给限制住了。具体错误如下:

23a61702f2d342852dbd68fe09fcb71c3cf.jpg

于是就先咨询了质量部的同事,是否增加了这样的规则,限制了文件的总行数,得到的反馈是最近没有做过改动。

3、问题解决

3.1  既然规则方面没有改动过,那就先看看是不是行数过大的问题吧,把文件内容缩小到一定的行数比如200行,结果报错信息与上面的是一样的,只是变了一下数字。宣告失败

3.2 既然不是文件行数的问题,那就换个方向。清理一下Jenkins工作空间。操作如下:

d9bd07a454ca56bf5b7b3d9d16f5d5c118c.jpg

结果就是扫描失败,失败的错误变了(是个进步终于不在看上面那个错误了)。报错如下:

e9bc09cd0a301b67053ce62af1187894320.jpg

根据错误提取关键词build,跟编译有关系,然后看下Jenkins的编译配置。结果发现少了如下配置。

11efa5c83c9a86db73d8f90528091ce68bc.jpg

工程是采用gradle进行编译打包的,所以缺少了这个过程自然就编译不了了。重新执行Jenkins成功:

99b31f39c48b46968cb7fae8a5db50d57ee.jpg

并生成了Sonar的扫描报告。至此就算把上面那个问题解决了。

4、总结

中间还有去百度过类似的异常,本来开发只是简单的了解Jenkins的使用,比如执行和发布,从异常看是发生在了Sonar上应该有质量的同事定位好问题,如果确实是代码的问题在交由开发组进行修复。但直接甩给开发也是醉了,百度没能找到对应的类似问题,所以还得自己找思路解决。

综上基本的问题定位是由于没有配置编译脚本,导致编译的class文件不是最新的,代码在变化后不能相对应,导致的问题。

通过1、清理工作空间把旧的编译过的class清除,2、配置编译脚本

留下痕迹做个参考

 

 

 

转载于:https://my.oschina.net/dolor/blog/3022467

你可能感兴趣的文章
基于Vue开发一个日历组件
查看>>
如何创建自己的npm包
查看>>
ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截
查看>>
JavaSE基础:Math类和Random类
查看>>
package.json 中你需要了解的都在这
查看>>
(三)编辑序列帧动画
查看>>
关于读书笔记
查看>>
如何在webpack+vue项目中使用postcss-px2rem
查看>>
JavaScript DOM 编程艺术 学习笔记01
查看>>
浏览器滚动条高度的获取
查看>>
2017年终总结
查看>>
【Node】简单快捷的图片压缩脚本
查看>>
ZooKeeper系列一:基本概念
查看>>
分布式消息中间件MQ简单介绍
查看>>
React和Redux的连接react-redux
查看>>
Java虚拟机内存管理(五)-垃圾收集器
查看>>
亚洲诚信联合又拍云升级云端SSL证书服务
查看>>
感恩节那天,亚洲诚信收到了一封来自客户的致谢信……
查看>>
网上看到的“12个非常有用的JavaScript技巧”
查看>>
Find系列回归背后,OPPO的探索精神有了新定义?
查看>>