检测项目中的重复代码,原理参考了 PMD 工具的 CPD 部分 。由于 IntelliJ IDEA 等开发工具和 PMD 等分析工具已经包含了重复代码检测的功能,本项目的实际使用意义不大。
将该项目作为 Maven 项目导入到 IDE 中,在 CPDLauncher
中设置参数,然后运行。
CPD 原理: PMD 源码阅读(2)— 复制粘贴检测
本项目中使用 ANTLR v4 生成的 Lexer 进行分词。
使用的语法文件: antlr/grammars-v4。
算法参考: Rabin-Karp的Java实现