This is an automated email from the ASF dual-hosted git repository. adangel pushed a commit to branch MPMD-266 in repository https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git
commit 9039d125b7a7b3195f265181bd659bdf0b154e22 Author: Andreas Dangel <adan...@apache.org> AuthorDate: Sat Jun 23 18:38:18 2018 +0200 [MPMD-266] - Aggregate report in multi-module projects doesn't use correct auxclasspath Aggregate the classpath --- src/it/MPMD-266-typeresolution-aggregated/pom.xml | 1 + .../org/apache/maven/plugins/pmd/PmdReport.java | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/it/MPMD-266-typeresolution-aggregated/pom.xml b/src/it/MPMD-266-typeresolution-aggregated/pom.xml index d6410a1..1ecba56 100644 --- a/src/it/MPMD-266-typeresolution-aggregated/pom.xml +++ b/src/it/MPMD-266-typeresolution-aggregated/pom.xml @@ -70,6 +70,7 @@ under the License. <rulesets> <ruleset>ruleset.xml</ruleset> </rulesets> + <skipEmptyReport>false</skipEmptyReport> </configuration> </plugin> </plugins> diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java index fa354a1..bcfb242 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java @@ -40,6 +40,7 @@ import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.project.MavenProject; import org.apache.maven.reporting.MavenReportException; import org.codehaus.plexus.resource.ResourceManager; import org.codehaus.plexus.resource.loader.FileResourceCreationException; @@ -674,7 +675,7 @@ public class PmdReport configuration.setDefaultLanguageVersion( languageVersion ); } - if ( typeResolution ) + if ( typeResolution && !aggregate ) { try { @@ -688,6 +689,24 @@ public class PmdReport throw new MavenReportException( e.getMessage(), e ); } } + else if ( typeResolution && aggregate ) + { + List<String> classpath = new ArrayList<>(); + try + { + for ( MavenProject localProject : reactorProjects ) + { + classpath.addAll( includeTests ? localProject.getTestClasspathElements() + : localProject.getCompileClasspathElements() ); + } + getLog().debug( "Using aggregated aux classpath: " + classpath ); + configuration.prependClasspath( StringUtils.join( classpath.iterator(), File.pathSeparator ) ); + } + catch ( Exception e ) + { + throw new MavenReportException( e.getMessage(), e ); + } + } if ( null != suppressMarker ) {