开发者社区> 问答> 正文

P3C 技术上是如何实现的呢 ?

P3C 技术上是如何实现的呢 ?

展开
收起
与时俱进的探索者 2021-11-06 21:42:07 1080 0
1 条回答
写回答
取消 提交回答
  • image.png "经过多次调研和探讨,我们选择了开源代码扫描工具 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"

    2021-11-08 21:14:30
    赞同 展开评论 打赏
问答分类:
p3c
问答地址:
问答排行榜
最热
最新

相关电子书

更多
如何使用Tair增强数据结构构建丰富在线实时场景 立即下载
深入解析数据存储技术原理及发展演进—数据存储技术概述 立即下载
复杂升学环境下的语言交互:技术与实践 立即下载