前言
随着代码不断开发,项目不断变更,项目人员不断更迭。有些时候,由于不清楚或者不熟悉,在代码中写了大量重复代码,后期如果要人工检查去处理太消耗人力。CPD(copy-paste-detecto)支持 C/C++, C#, Dart, Fortran, Go, Groovy, Java, JavaScript, JSP, Kotlin, Lua, Matlab, Modelica, Objective-C, Perl, PHP, PLSQL, Python, Ruby, Salesforce.com Apex, Scala, Swift, Visualforce and XML.代码检查
github地址:https://github.com/pmd/pmd
一、下载
wget https://github.com/pmd/pmd/releases/download/pmd_releases%2F6.39.0/pmd-bin-6.39.0.zip
unzip pmd-bin-6.39.0.zip
二、命令行启动
进入pmd-bin的bin目录
$ ./run.sh cpd --minimum-tokens 100 --files /usr/local/java/src/java --language java
–minmum-tokens 必填参数 The minimum token length which should be reported as a duplicate.
–files. 必填参数 需要分析的文件目录
–language 指定代码的语言,非必填,默认为java
三、图形化界面启动
进入pmd-bin的bin目录
$ ./run.sh cpdgui
选择自己项目代码,对应的开发语言,重复字符数量,然后点击go进行测试
总结
CPD是一款比较轻量级别查找代码重复的工具
参考文档:
https://pmd.github.io/pmd-6.39.0/pmd_userdocs_cpd.html#refactoring-duplicates
https://refactoring.guru/smells/duplicate-code