Author: lcorneliussen
Date: Tue May 15 07:40:30 2012
New Revision: 1338574

URL: http://svn.apache.org/viewvc?rev=1338574&view=rev
Log:
[NPANDAY-566] Custom NPanday-aware copy-dependencies plugin

o added parameter for excluding reactor projects

Modified:
    
incubator/npanday/trunk/plugins/maven-resolver-plugin/src/main/java/npanday/plugin/resolver/CopyDependenciesMojo.java

Modified: 
incubator/npanday/trunk/plugins/maven-resolver-plugin/src/main/java/npanday/plugin/resolver/CopyDependenciesMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-resolver-plugin/src/main/java/npanday/plugin/resolver/CopyDependenciesMojo.java?rev=1338574&r1=1338573&r2=1338574&view=diff
==============================================================================
--- 
incubator/npanday/trunk/plugins/maven-resolver-plugin/src/main/java/npanday/plugin/resolver/CopyDependenciesMojo.java
 (original)
+++ 
incubator/npanday/trunk/plugins/maven-resolver-plugin/src/main/java/npanday/plugin/resolver/CopyDependenciesMojo.java
 Tue May 15 07:40:30 2012
@@ -33,6 +33,7 @@ import org.apache.maven.artifact.Artifac
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.artifact.resolver.filter.InversionArtifactFilter;
 import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
 import org.apache.maven.plugin.AbstractMojo;
@@ -43,6 +44,7 @@ import org.codehaus.plexus.util.FileUtil
 
 import java.io.File;
 import java.io.IOException;
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -104,6 +106,21 @@ public class CopyDependenciesMojo
      */
     private boolean skip;
 
+    /**
+     * The reactor projects.
+     *
+     * @parameter expression="${reactorProjects}"
+     */
+    protected List<MavenProject> reactorProjects;
+
+    /**
+     * If specified, Artifacts that are part of the same reactor will not be 
copied.
+     * Transitive dependencies of these artifacts will still get copied, 
though.
+     *
+     * @parameter default-value="false"
+     */
+    private boolean skipReactorArtifacts;
+
     public void execute() throws MojoExecutionException, MojoFailureException
     {
         String skipReason = "";
@@ -163,6 +180,22 @@ public class CopyDependenciesMojo
             includeFilter.add( new InversionArtifactFilter( new 
ScopeArtifactFilter( excludeScope ) ) );
         }
 
+        if ( skipReactorArtifacts ){
+            getLog().info( "NPANDAY-158-008: " + reactorProjects );
+
+            includeFilter.add( new InversionArtifactFilter( new 
ArtifactFilter()
+            {
+                public boolean include( Artifact artifact )
+                {
+                    for (MavenProject project : reactorProjects){
+                        if (project.getArtifact().getId().equals( 
artifact.getId() ))
+                            return true;
+                    }
+                    return false;
+                }
+            } ));
+        }
+
         for ( Artifact dependency : artifacts )
         {
             if ( !includeFilter.include( dependency ) )


Reply via email to