"经过多次调研和探讨,我们选择了开源代码扫描工具 PMD 去做资源与规则扩展,主要是看中了其规则扩展方便,集成到其它通用平台和插件上更灵活的特性。但 PMD 也有其局限性,即不支持跨文件扫描(例如:对过时方法的检测),所以那些需要针对跨文件扫描的规则我们提到了 Sonar、IDE 等上层工具去实现。 ● 方案选定后,我们基于开源的 pmd-core 三方 Jar 的能力上,扩展了约 60 个规约扫描规则,并封装出 P3C-PMD 组件。 ● 在 P3C-PMD 组件基础上,基于 Sonar 插件扩展标准,我们提供了 sonarp3c-pmd-plugin,也就是封装出了一个标准的 Sonar 插件。此插件主要用于代码库全量自动化扫描阶段。 ● CodeReview 插件采用直接类似于命令行调用的方式集成了 p3c-pmd,主要针对于增量代码检测阶段。 ● 在 P3C-PMD 组件基础上,基于 IDEA 的 Inspection 机制,以及 Running Inspection By Name 的功能自主实现了 IDEA 插件。 ● Eclipse 插件主要是基于原生已有的 Eclipse PMD 插件进行的规则替换开发。 我们通过 IDE 插件的实现,进而解决了本地代码规约检测的问题。 综上所述,我们通过不同的插件覆盖了不同研发阶段(如本地编码阶段,自动化 全量测试阶段、CodeReview 增量检测阶段)的代码规约检测。通过本地结合线上、全量结合增量的策略,我们实现了一套规则落地多端,进而将阿里巴巴 Java 编码规约通过工具化平台化的手段在阿里内部进行了充分落地。2017 年 10 月份,我们在GitHub 上将 P3C 规则和工具的源码正式对外开源。 资源来源:电子书《阿里巴巴 DevOps实践手册》下载连接:https://developer.aliyun.com/topic/download?id=205"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。