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