2011-08-10 2 views
0

PMD 정적 분석기의 기능 : 복사 붙여 넣기 감지기.정적 코드 분석기를 사용하는 방법 CPD ignoreLiterals 및 ignoreIdentifiers from command-line?

예, 나는 http://pmd.sourceforge.net/cpd.html을 철저히 읽었습니다.

하지만 개미 작업에서 CPD를 실행하면 ignoreLiteralsignoreIdentifiers을 지정하여 작업을 미세 조정할 수 있습니다. 명령 줄을 사용하여이 키를 어떻게 지정할 수 있습니까?

답변

1

저는 현재 불가능하다고 생각합니다 (pmd 4.2.6 및 pmd 4.1.1 포함).

간단한 Properties 객체는 ignoreLiteralsignoreIdentifiers 설정이 포함되어 있지만, 명령 줄 CPD.main() 방법은 어떤 속성이 개미 작업 (CPDTask) 수행으로 LanguageFactory에 이의를 전달하지 않습니다. 또한, 내가 맞다면 CPDTask 메서드는 LanguageFactory.createLanguage(String language, Properties properties) 메서드에 이러한 속성을 전달하지만이 메서드는 속성 인수를 사용하지 않습니다. 따라서 IMO ignoreLiteralsignoreIdentifiers 설정은 ant 작업에서 무시됩니다.

Here is an old issue about this 아직 열려 있습니다. 패치가 올바르게 보이지만 여전히 작동합니다. 불행히도 명령 행 CPD 클래스에 대한 수정 사항은 없습니다. 아마 그것은 개미 작업을 수정합니다. 어쨌든이 기능이 정말로 필요한 경우에는 이러한 문제를 해결하기가 너무 어려워 보이지 않습니다.

0

PMD 4.3에 대한 메모 (sourceforge)에 따르면이 문제가 해결되었습니다.

관련 문제