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 )
         {

Reply via email to