用于查找的Java工具 - 跨项目复制/粘贴代码

shi*_*mbu 10 java refactoring copy-paste

我们继承了一些leagcy代码,它们在项目中复制/粘贴了大量代码.有没有办法找到这些?PMD可以完成一个项目

Dav*_*Far 6

摘要

还有CloneDetective,Simian和Simscan.来自2009年国际软件工程大会的这篇论文对它们和PMD的CPD进行了比较.

详细地

一种可以处理多种语言的工具是CloneDetective(基于ConQuat,持续质量评估工具包):ABAP,ADA,Java,C#,C/C++,Visual Basic,Cobol,PL1.

另一个工具是Simian,相似性分析器,它可识别Java,C#,C,C++,COBOL,Ruby,JSP,ASP,HTML,XML,Visual Basic,Groovy源代码甚至纯文本文件中的重复.它运行在JVM和.NET上.

实际上,如果你看看.NET,有很多复制粘贴检测工具......

SimScan,SimilarityScanner是一个Eclipse/IDEA/JBUILDER插件,可以在大型Java源代码库中找到重复或类似的代码片段.我不知道,也不知道"类似碎片"是什么意思.听起来它可能也只是在单个项目中看起来孤立,但IntelliJ-Screenshots看起来很漂亮.

来自2009年国际软件工程大会的论文比较了CloneDetective,PMD的CPD,Simian和Simscan.

就像PMD的复制和粘贴查找器实际上被称为"复制粘贴检测器"的CPD一样,使用该术语作为谷歌搜索的终端技术有帮助.经常使用的另一个术语是"克隆检测".