You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2011/10/28 15:01:39 UTC

svn commit: r1190290 - /maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/PurgeLocalRepositoryMojo.java

Author: olamy
Date: Fri Oct 28 13:01:39 2011
New Revision: 1190290

URL: http://svn.apache.org/viewvc?rev=1190290&view=rev
Log:
[MDEP-331] Add to purge-local-repository goal ability to clean only snapshots.

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

Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/PurgeLocalRepositoryMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/PurgeLocalRepositoryMojo.java?rev=1190290&r1=1190289&r2=1190290&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/PurgeLocalRepositoryMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/PurgeLocalRepositoryMojo.java Fri Oct 28 13:01:39 2011
@@ -28,6 +28,7 @@ import org.apache.maven.artifact.resolve
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.AbstractMojo;
@@ -170,6 +171,15 @@ public class PurgeLocalRepositoryMojo
      */
     private boolean verbose;
 
+    /**
+     * Whether to purge only snapshot artifacts.
+     *
+     * @parameter expression="${snapshotsOnly}" default-value="false"
+     * @since 2.4
+     */
+    private boolean snapshotsOnly;
+
+
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
@@ -229,6 +239,10 @@ public class PurgeLocalRepositoryMojo
                 factory.createDependencyArtifact( dependency.getGroupId(), dependency.getArtifactId(), vr,
                                                   dependency.getType(), dependency.getClassifier(),
                                                   dependency.getScope() );
+            if ( snapshotsOnly && !artifact.isSnapshot() )
+            {
+                continue;
+            }
             dependencyArtifacts.add( artifact );
         }
 
@@ -236,9 +250,25 @@ public class PurgeLocalRepositoryMojo
         {
             try
             {
-                ArtifactResolutionResult result =
-                    resolver.resolveTransitively( dependencyArtifacts, project.getArtifact(), remoteRepositories,
-                                                  localRepository, source );
+                ArtifactResolutionResult result;
+
+                if ( snapshotsOnly )
+                {
+                    result = resolver.resolveTransitively( dependencyArtifacts, project.getArtifact(), localRepository,
+                                                           remoteRepositories, source, new ArtifactFilter()
+                    {
+                        public boolean include( Artifact artifact )
+                        {
+                            return artifact.isSnapshot();
+                        }
+                    } );
+                }
+                else
+                {
+                    result =
+                        resolver.resolveTransitively( dependencyArtifacts, project.getArtifact(), remoteRepositories,
+                                                      localRepository, source );
+                }
 
                 artifactMap = ArtifactUtils.artifactMapByVersionlessId( result.getArtifacts() );
             }