sonar整合阿里java规范开发历程
1. 在准备做sonar整合阿里java规范开发的sonar-pmd插件的时候,首先上网找相关整合的经验,看到的是博客中综合考虑,觉得这篇博客应该可以: https://www.jianshu.com/p/b849175dd38b 这篇博客不管是从博客段落设计还是从大概扫过一遍内容之后的感触,都觉得挺靠谱的,然后就根据博主提供的git地址下载了博主的源码,随后根据咱们自己系统的要求对博主的源码按其博文描述的操作步骤进行相应的筛减,然后开始clean install 打jar包,报错,根据报错日志提示信息百度谷歌一波搜索解决一个报错,继续clean install 打jar包,报错(不是同一个错),继续解决问题…在如此解决了几次问题之后仍是无法clean install 成功。
2. 由于一直无法clean install成功,且不知道是自己将源码改错还是其源码本身就是不通的,随后将最初下载的源码包重新解压,不做任何更改clean install,仍报错,…
3. 在别人修改源码的基础上进行修改,对原博主代码依赖较高,且出问题不好解决,此路不通。
4. 针对sonar整合阿里java规范,以及网上了解到的别人的方案,需将阿里java规范整合在sonar的pmd插件中,将整合后的pmd插件以插件的形式应用在sonar服务,既然基于别人整合半成品的方案无法走通,那就上述到sonar-pmd插件源码,基于一份干净的sonar-pmd插件源码进行个性化开发,随后下载了与当前sonar版本匹配(7.3)的sonar-pmd插件源码进行开发
5. 为了排除sonar-pmd插件源码是否真实可用的疑问,此次直接将sonar-pmd源码clean install 打出jar包放入sonar服务,sonar正常启动,且在sonar页面可以看到对应的代码规则;后将阿里java规范整合在当前sonar-pmd源码的配置文件中,且导入基于阿里java规范开发源码打包p3c-pmd-1.3.6.jar,将项目clean install 成功,得到sonar-pmd插件,将此jar包放入sonar服务,正常启动,sonar页面可以看到成功加入的阿里java规范53条,sonar整合阿里java规范成功,但是…
6. 将sonar整合jenkins配置到具体项目进行检测时,检测过程一直报错,在调整了jenkins对应项目的sonar配置后,仍无法解决,而将sonar的代码规则配置为其他java规则进行扫描,则正常扫描,论证jenkins项目sonar配置正常,上面开发的整合阿里java规范版的sonar-pmd jar包有异常,根据异常信息再次返回sonar-pmd进行排查,在解决多次异常之后仍无法正常配合jenkins代码扫描成功…且网上针对此版本未有整合阿里java规范的操作记录
7. 针对上面的情况,采用李爽提出的降低sonar版本的方法,后将sonar版本将至6.5,此次将sonar-pmd对应6.5版本的插件下载之后,基于jar包的基础上进行阿里java规范整合的配置文件的修改,整合成功后将jar放入sonar服务重启服务,配置sonar代码规则后并整合jenkins 项目配置文件进行代码扫描,正常无报错,sonar整合阿里java规范完成。
8. 此文成文较早,现在阿里开发规范已更新至最新版,在这里发出这篇过去的开发历程来为以后开发提供借鉴,仅供参考