这就是 PMD 静态分析器的功能:复制粘贴检测器。
是的,我彻底阅读了http://pmd.sourceforge.net/cpd.html 。
ignoreLiterals
但是如果我从 ant-task 运行 CPD,我可以通过指定and来微调它的工作ignoreIdentifiers
。如何使用命令行指定这些键?
这就是 PMD 静态分析器的功能:复制粘贴检测器。
是的,我彻底阅读了http://pmd.sourceforge.net/cpd.html 。
ignoreLiterals
但是如果我从 ant-task 运行 CPD,我可以通过指定and来微调它的工作ignoreIdentifiers
。如何使用命令行指定这些键?
我认为目前不可能(使用 pmd 4.2.6 和 pmd 4.1.1)。
一个简单Properties
的对象包含ignoreLiterals
和ignoreIdentifiers
设置,但命令行CPD.main()
方法不会LanguageFactory
像 ant 任务 ( CPDTask
) 那样将任何 Properties 对象传递给 。此外,如果我是正确的,CPDTask
将这些属性传递给LanguageFactory.createLanguage(String language, Properties properties)
方法,但此方法不使用属性参数。因此,蚂蚁任务忽略了 IMOignoreLiterals
和ignoreIdentifiers
设置。
这是一个关于这个的老问题,它仍然是开放的。补丁看起来正确,也许它仍然有效。不幸的是,它不包含对命令行CPD
类的任何修复。也许它修复了蚂蚁任务。无论如何,如果你真的需要这个功能,解决这些问题看起来并不难。
根据sourceforge的 PMD 4.3 的注释,此问题已得到修复。