When using PMD 5.0.0, I get the following error message for every file, and hence no output:
java.lang.NoSuchMethodError: net.sourceforge.pmd.cpd.SourceCode.getCodeBuffer()Ljava/lang/StringBuffer;
at net.sourceforge.pmd.cpd.ObjectivecTokenizer.tokenize(ObjectivecTokenizer.java:27)
at net.sourceforge.pmd.cpd.CPD.add(CPD.java:102)
at net.sourceforge.pmd.cpd.CPD.add(CPD.java:68)
at net.sourceforge.pmd.cpd.CPD.addDirectory(CPD.java:78)
at net.sourceforge.pmd.cpd.CPD.addRecursively(CPD.java:63)
at net.sourceforge.pmd.cpd.CPD.main(CPD.java:138)
my CPD command line looks like this (added the logging flag temporarily to get above err msg):
java
-DObjC-CPD-LoggingEnabled=YES
-Xmx512m
-classpath "/tools/pmd/lib/asm-3.2.jar:/tools/pmd/lib/jaxen-1.1.1.jar:/tools/pmd/lib/pmd-5.0.0.jar:/tools/pmd/lib/ObjCLanguage-0.0.7-SNAPSHOT.jar"
net.sourceforge.pmd.cpd.CPD
--files "/project/files/"
--minimum-tokens 100
--language ObjectiveC
--encoding UTF-8
--format net.sourceforge.pmd.cpd.XMLRenderer
> "cpd.xml"
Work-around: download and use PMD 4.2.6.