【发布时间】:2009-12-31 18:31:29
【问题描述】:
希望我重新表述这个问题,使其更简单易懂。
我有大约 30 个组件(内部)进入一个 Web 应用程序。这意味着 30 个不同的项目都有自己独立的 POM。我在我的 POM 中使用了相当多的继承,因此它们继承的其中一项是 PMD/CPD 配置以防止代码重复。
即使我运行了 CPD/PMD,它也只能检测到同一项目中的重复代码。我希望它能够检测我的任何项目中是否存在可以重构的项目之间共享的代码。此外,我一直在寻找可以(使用相同的概念/模式)验证其他开源依赖项之间没有共享代码的东西。
它将是 CPD/PMD,但它会在源 jar 上运行。如果您扫描所有项目及其依赖项以查找重复项,此任务将消耗大量内存。现在,我只想将其应用于内部项目。如果它有效,那么扩展它会相对容易/直接。
沃尔特
【问题讨论】:
-
你能澄清一下这个问题吗?
-
您需要一个重复代码检测器。当然,PMD 是你的野兽,你已经完成了。听起来您想对 WAR 文件进行逆向工程以将其源代码(如何将字节码翻译成看起来像原始源?这听起来没有必要、无法实现并且完全没用)与其他源代码进行比较,或者只是比较它的源代码字节码与您的字节码。为什么不直接比较你得到的源代码呢?
-
另外,在某些情况下尝试对代码进行逆向工程可能存在法律问题。
标签: java maven-2 code-duplication pmd similarity