in src/main/java/org/apache/maven/plugins/pmd/PmdReport.java [396:424]
private List<String> resolveRulesets() throws MavenReportException {
// configure ResourceManager - will search for urls (URLResourceLoader) and files in various directories:
// in the directory of the current project's pom file - note: extensions might replace the pom file on the fly
locator.addSearchPath(
FileResourceLoader.ID, project.getFile().getParentFile().getAbsolutePath());
// in the current project's directory
locator.addSearchPath(FileResourceLoader.ID, project.getBasedir().getAbsolutePath());
// in the base directory - that's the directory of the initial pom requested to build,
// e.g. the root of a multi module build
locator.addSearchPath(FileResourceLoader.ID, session.getRequest().getBaseDirectory());
locator.setOutputDirectory(rulesetsTargetDirectory);
String[] sets = new String[rulesets.length];
try {
for (int idx = 0; idx < rulesets.length; idx++) {
String set = rulesets[idx];
getLog().debug("Preparing ruleset: " + set);
String rulesetFilename = determineRulesetFilename(set);
File ruleset = locator.getResourceAsFile(rulesetFilename, getLocationTemp(set, idx + 1));
if (null == ruleset) {
throw new MavenReportException("Could not resolve " + set);
}
sets[idx] = ruleset.getAbsolutePath();
}
} catch (ResourceNotFoundException | FileResourceCreationException e) {
throw new MavenReportException(e.getMessage(), e);
}
return Arrays.asList(sets);
}