Author: brianf
Date: Fri May 28 02:12:24 2010
New Revision: 949069

URL: http://svn.apache.org/viewvc?rev=949069&view=rev
Log:
MDEP-240 added the ignoreCompile to the report.

Modified:
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AnalyzeReportMojo.java

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AnalyzeReportMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AnalyzeReportMojo.java?rev=949069&r1=949068&r2=949069&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AnalyzeReportMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AnalyzeReportMojo.java
 Fri May 28 02:12:24 2010
@@ -20,9 +20,13 @@ package org.apache.maven.plugin.dependen
  */
 
 import java.io.File;
+import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Locale;
 import java.util.ResourceBundle;
+import java.util.Set;
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.siterenderer.Renderer;
 import org.apache.maven.project.MavenProject;
@@ -35,10 +39,9 @@ import org.apache.maven.shared.dependenc
 /**
  * Analyzes the dependencies of this project and produces a report that 
summarizes which are: used and declared; used
  * and undeclared; unused and declared.
- *
+ * 
  * @version $Id$
  * @since 2.0-alpha-5
- *
  * @goal analyze-report
  * @requiresDependencyResolution test
  * @execute phase="test-compile"
@@ -50,7 +53,7 @@ public class AnalyzeReportMojo
 
     /**
      * The Maven project to analyze.
-     *
+     * 
      * @parameter expression="${project}"
      * @required
      * @readonly
@@ -59,7 +62,7 @@ public class AnalyzeReportMojo
 
     /**
      * The Maven project dependency analyzer to use.
-     *
+     * 
      * @component
      * @required
      * @readonly
@@ -67,8 +70,6 @@ public class AnalyzeReportMojo
     private ProjectDependencyAnalyzer analyzer;
 
     /**
-     *
-     *
      * @component
      * @required
      * @readonly
@@ -77,13 +78,20 @@ public class AnalyzeReportMojo
 
     /**
      * Target folder
-     *
+     * 
      * @parameter expression="${project.build.directory}"
      * @readonly
      * @since 2.0-alpha-5
      */
     private File outputDirectory;
 
+    /**
+     * Ignore Runtime,Provide,Test,System scopes for unused dependency analysis
+     * 
+     * @parameter expression="${ignoreNonCompile}" default-value="false"
+     */
+    private boolean ignoreNonCompile;
+
     // Mojo methods -----------------------------------------------------------
 
     /*
@@ -115,6 +123,26 @@ public class AnalyzeReportMojo
             throw new MavenReportException( "Cannot analyze dependencies", 
exception );
         }
 
+
+        //remove everything that's not in the compile scope
+        if ( ignoreNonCompile )
+        {
+            Set filteredUnusedDeclared = new HashSet( 
analysis.getUnusedDeclaredArtifacts() );
+            Iterator iter = filteredUnusedDeclared.iterator();
+            while ( iter.hasNext() )
+            {
+                Artifact artifact = (Artifact) iter.next();
+                if ( !artifact.getScope().equals( Artifact.SCOPE_COMPILE ) )
+                {
+                    iter.remove();
+                }
+            }
+            
+            ProjectDependencyAnalysis analysisTemp = new 
ProjectDependencyAnalysis(analysis.getUsedDeclaredArtifacts(),analysis.getUsedUndeclaredArtifacts(),filteredUnusedDeclared);
+            analysis = analysisTemp;
+        }
+        
+        
         // Step 2: Create sink and bundle
         Sink sink = getSink();
         ResourceBundle bundle = getBundle( locale );
@@ -181,10 +209,7 @@ public class AnalyzeReportMojo
     // protected methods ------------------------------------------------------
 
     /**
-     *
-     *
-     * @param locale
-     *            the current locale
+     * @param locale the current locale
      */
     protected ResourceBundle getBundle( Locale locale )
     {


Reply via email to