《阿里巴巴Java开发手册》自从第一个版本起,倍受业界关注,很多人甚至希望能尽快在自己的团队推行起来,让团队有一套共同的开发准则。基于这套准则,我们希望达到以下两个要求: 1.以插件的形式集成到java的IDE开发环境(IDEA、Eclipse),用于开发人员的代码自检。 2.将该开发规范集成到sonar的规则库,同时和gitlab-ci集成,制定阈值规则,不满足要求,pipline执行失败。 如何实现 插件导入IDE 阿里巴巴开发了一套自动化的IDE检测插件(IDEA、Eclipse), 该插件在扫描代码后,将不符合《手册》的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则实现了批量一键修复的功能。 代码已经开源,GitHub:https://github.com/alibaba/p3c 打开IDEA,选择Preferences - Plugins - Browse repositories后,在输入框中输入"alibaba",可以看到返回结果中有"Alibaba Java Coding Guidelines"。 制作sonar插件 1.在github找到一个p3c的sonar插件开源项目,https://github.com/mrprince/sonar-p3c-pmd,导入工程后,修改规则名org.sonar.plugins.pmd.PmdConstants,REPOSITORY_NAME为规则名称PMD_wwyl。 插件打包:mvn clean package sonar-packaging:sonar-plugin -Dmaven.test.skip=true 2.将生成的插件放到/extensions/plugins 3.重启sonar,需切到非root账号,先启动es服务, ./elasticsearch -d 再启动sonar服务./sonar.sh start 4.查看sonar和es服务日志是否正常 5.sonar规则增加了p3c,完工。 |