Как использовать статический анализатор кода CPD ignoreLiterals и ignoreIdentifiers из командной строки? - PullRequest
0 голосов
/ 10 августа 2011

Это касается функции статического анализатора PMD: детектора копирования-вставки.

Да, я полностью прочитал http://pmd.sourceforge.net/cpd.html.

Но если я запускаю CPD из ant-task, яможно настроить его работу, указав ignoreLiterals и ignoreIdentifiers.Как я могу указать эти ключи с помощью командной строки?

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Я думаю, что в настоящее время это невозможно (с pmd 4.2.6 и pmd 4.1.1).

Простой объект Properties содержит настройки ignoreLiterals и ignoreIdentifiers, но метод командной строки CPD.main() не передает объект Properties в LanguageFactory какЗадача муравья (CPDTask) выполняет.Кроме того, если я прав, CPDTask передает эти свойства методу LanguageFactory.createLanguage(String language, Properties properties), но этот метод не использует аргумент свойств.Итак, IMO, настройки ignoreLiterals и ignoreIdentifiers игнорируются заданием ant.

Вот старая проблема с этим , которая все еще открыта.Патч выглядит корректно, возможно все еще работает.К сожалению, он не содержит исправлений для класса командной строки CPD.Возможно, это решает задачу муравья.В любом случае, если вам действительно нужна эта функциональность, вам не составит труда решить эти проблемы.

0 голосов
/ 24 января 2012

Согласно примечаниям для PMD 4.3 в sourceforge эта проблема была исправлена.

...