in src/main/java/org/apache/maven/plugins/pmd/PmdReport.java [340:388]
private void executePmd() throws MavenReportException {
if (pmdResult != null) {
// PMD has already been run
getLog().debug("PMD has already been run - skipping redundant execution.");
return;
}
try {
filesToProcess = getFilesToProcess();
if (filesToProcess.isEmpty() && !"java".equals(language)) {
getLog().warn("No files found to process. Did you add your additional source folders like javascript?"
+ " (see also build-helper-maven-plugin)");
}
} catch (IOException e) {
throw new MavenReportException("Can't get file list", e);
}
PmdRequest request = new PmdRequest();
request.setLanguageAndVersion(language, targetJdk);
request.setRulesets(resolveRulesets());
request.setAuxClasspath(typeResolution ? determineAuxClasspath() : null);
request.setSourceEncoding(getInputEncoding());
request.addFiles(filesToProcess.keySet());
request.setMinimumPriority(minimumPriority);
request.setSuppressMarker(suppressMarker);
request.setBenchmarkOutputLocation(benchmark ? benchmarkOutputFilename : null);
request.setAnalysisCacheLocation(analysisCache ? analysisCacheLocation : null);
request.setExcludeFromFailureFile(excludeFromFailureFile);
request.setTargetDirectory(targetDirectory.getAbsolutePath());
request.setOutputEncoding(getOutputEncoding());
request.setFormat(format);
request.setShowPmdLog(showPmdLog);
request.setSkipPmdError(skipPmdError);
request.setIncludeXmlInSite(includeXmlInSite);
request.setReportOutputDirectory(getReportOutputDirectory().getAbsolutePath());
request.setLogLevel(determineCurrentRootLogLevel());
Toolchain tc = getToolchain();
if (tc != null) {
getLog().info("Toolchain in maven-pmd-plugin: " + tc);
String javaExecutable = tc.findTool("java"); // NOI18N
request.setJavaExecutable(javaExecutable);
}
getLog().info("PMD version: " + AbstractPmdReport.getPmdVersion());
pmdResult = PmdExecutor.execute(request);
}