in src/main/java/org/apache/maven/plugins/pmd/CpdReport.java [169:208]
private void executeCpd() throws MavenReportException {
if (cpdResult != null) {
// CPD has already been run
getLog().debug("CPD has already been run - skipping redundant execution.");
return;
}
try {
filesToProcess = getFilesToProcess();
CpdRequest request = new CpdRequest();
request.setMinimumTokens(minimumTokens);
request.setLanguage(language);
request.setIgnoreAnnotations(ignoreAnnotations);
request.setIgnoreIdentifiers(ignoreIdentifiers);
request.setIgnoreLiterals(ignoreLiterals);
request.setSourceEncoding(getInputEncoding());
request.addFiles(filesToProcess.keySet());
request.setLogLevel(determineCurrentRootLogLevel());
request.setExcludeFromFailureFile(excludeFromFailureFile);
request.setTargetDirectory(targetDirectory.getAbsolutePath());
request.setOutputEncoding(getOutputEncoding());
request.setFormat(format);
request.setIncludeXmlInReports(includeXmlInReports);
request.setReportOutputDirectory(getReportOutputDirectory().getAbsolutePath());
Toolchain tc = getToolchain();
if (tc != null) {
getLog().info("Toolchain in maven-pmd-plugin: " + tc);
String javaExecutable = tc.findTool("java"); // NOI18N
request.setJavaExecutable(javaExecutable);
}
cpdResult = CpdExecutor.execute(request);
} catch (UnsupportedEncodingException e) {
throw new MavenReportException("Encoding '" + getInputEncoding() + "' is not supported.", e);
} catch (IOException e) {
throw new MavenReportException(e.getMessage(), e);
}
}