You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2012/10/16 21:19:00 UTC

svn commit: r1398935 - in /maven/plugins/trunk/maven-dependency-plugin: ./ src/main/java/org/apache/maven/plugin/dependency/ src/main/java/org/apache/maven/plugin/dependency/utils/ src/test/java/org/apache/maven/plugin/dependency/ src/test/java/org/apa...

Author: rfscholte
Date: Tue Oct 16 19:19:00 2012
New Revision: 1398935

URL: http://svn.apache.org/viewvc?rev=1398935&view=rev
Log:
[MDEP-380] copy-dependencies should be able to use the artifact's baseVersion
contributed by Bakito
reviewed and submitted with minimum adjustments by Robert Scholte

Modified:
    maven/plugins/trunk/maven-dependency-plugin/pom.xml
    maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java
    maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java
    maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java
    maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/TestDependencyUtil.java

Modified: maven/plugins/trunk/maven-dependency-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/pom.xml?rev=1398935&r1=1398934&r2=1398935&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-dependency-plugin/pom.xml Tue Oct 16 19:19:00 2012
@@ -50,6 +50,12 @@ under the License.
     <url>http://jira.codehaus.org/browse/MDEP</url>
   </issueManagement>
 
+  <contributors>
+    <contributor>
+      <name>Bakito</name>
+    </contributor>
+  </contributors>
+
   <properties>
     <mavenVersion>2.0.9</mavenVersion>
     <doxiaVersion>1.0</doxiaVersion>

Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java?rev=1398935&r1=1398934&r2=1398935&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java Tue Oct 16 19:19:00 2012
@@ -32,6 +32,7 @@ import org.apache.maven.plugin.dependenc
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 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.shared.artifact.filter.collection.ArtifactsFilter;
 
@@ -72,6 +73,14 @@ public class CopyDependenciesMojo
     @Component( role = ArtifactRepositoryLayout.class )
     private Map<String, ArtifactRepositoryLayout> repositoryLayouts;
 
+
+    /**
+     * Either append the artifact's baseVersion or uniqueVersion to the filename.
+     * Will only be used if {@link #isStripVersion()} is {@code false}.
+     */
+    @Parameter( property = "mdep.useBaseVersion", defaultValue = "true" )
+    protected boolean useBaseVersion = false;
+    
     /**
      * Main entry into mojo. Gets the list of dependencies and iterates through
      * calling copyArtifact.
@@ -90,7 +99,7 @@ public class CopyDependenciesMojo
         {
             for ( Artifact artifact : artifacts )
             {
-                copyArtifact( artifact, this.stripVersion, this.prependGroupId );
+                copyArtifact( artifact, isStripVersion(), this.prependGroupId, this.useBaseVersion );
             }
         }
         else
@@ -179,15 +188,17 @@ public class CopyDependenciesMojo
      * @param removeVersion  specifies if the version should be removed from the file name
      *                       when copying.
      * @param prependGroupId specifies if the groupId should be prepend to the file while copying.
+     * @param useBaseVersion specifies if the baseVersion of the artifact should be used instead of the version.
      * @throws MojoExecutionException with a message if an error occurs.
      * @see DependencyUtil#copyFile(File, File, Log)
      * @see DependencyUtil#getFormattedFileName(Artifact, boolean)
      */
-    protected void copyArtifact( Artifact artifact, boolean removeVersion, boolean prependGroupId )
-        throws MojoExecutionException
+    protected void copyArtifact( Artifact artifact, boolean removeVersion, boolean prependGroupId, 
+    		boolean useBaseVersion ) throws MojoExecutionException
     {
 
-        String destFileName = DependencyUtil.getFormattedFileName( artifact, removeVersion, prependGroupId );
+        String destFileName = DependencyUtil.getFormattedFileName( artifact, removeVersion, prependGroupId, 
+        		useBaseVersion );
 
         File destDir;
         destDir = DependencyUtil.getFormattedOutputDirectory( useSubDirectoryPerScope, useSubDirectoryPerType,

Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java?rev=1398935&r1=1398934&r2=1398935&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java Tue Oct 16 19:19:00 2012
@@ -52,7 +52,7 @@ public final class DependencyUtil
     {
         return getFormattedFileName( artifact, removeVersion, false );
     }
-  
+
     /**
      * Builds the file name. If removeVersion is set, then the file name must be
      * reconstructed from the groupId (if <b>prependGroupId</b> is true) artifactId,
@@ -69,6 +69,30 @@ public final class DependencyUtil
      *         [groupId].artifactId-[version]-[classifier].[type]
      */
     public static String getFormattedFileName( Artifact artifact, boolean removeVersion, boolean prependGroupId )
+    {   
+    	return getFormattedFileName(artifact, removeVersion, prependGroupId, false);
+    	
+    }
+
+    /**
+     * Builds the file name. If removeVersion is set, then the file name must be
+     * reconstructed from the groupId (if <b>prependGroupId</b> is true) artifactId,
+     * Classifier (if used) and Type.
+     * Otherwise, this method returns the artifact file name.
+     * 
+     * @param artifact
+     *            File to be formatted.
+     * @param removeVersion
+     *            Specifies if the version should be removed from the file name.
+     * @param prependGroupId
+     *            Specifies if the groupId should be prepended to the file name.
+     * @param useBaseVersion
+     *            Specifies if the baseVersion of the artifact should be used instead of the version.
+     * @return Formatted file name in the format
+     *         [groupId].artifactId-[version]-[classifier].[type]
+     */
+    public static String getFormattedFileName( Artifact artifact, boolean removeVersion, boolean prependGroupId, 
+    		boolean useBaseVersion )
     {
         StringBuilder destFileName = new StringBuilder();
         
@@ -80,7 +104,14 @@ public final class DependencyUtil
         String versionString = null;
         if ( !removeVersion )
         {
-            versionString = "-" + artifact.getVersion();
+        	if ( useBaseVersion )
+            {
+        		versionString = "-" + artifact.getBaseVersion();
+            }
+        	else
+        	{
+        		versionString = "-" + artifact.getVersion();
+        	}
         }
         else
         {

Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java?rev=1398935&r1=1398934&r2=1398935&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java Tue Oct 16 19:19:00 2012
@@ -22,7 +22,6 @@ package org.apache.maven.plugin.dependen
 import java.io.File;
 import java.io.IOException;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Set;
 
 import org.apache.maven.artifact.Artifact;
@@ -103,10 +102,9 @@ public class TestCopyDependenciesMojo
         throws Exception
     {
         mojo.execute();
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertTrue( file.exists() );
@@ -122,26 +120,39 @@ public class TestCopyDependenciesMojo
         mojo.stripVersion = true;
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, true );
             File file = new File( mojo.outputDirectory, fileName );
             assertTrue( file.exists() );
         }
     }
 
+    public void testUseBaseVersion()
+        throws Exception
+    {
+        mojo.useBaseVersion = true;
+        mojo.execute();
+
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
+        {
+            String fileName = DependencyUtil.getFormattedFileName( artifact, false, false, true );
+            File file = new File( mojo.outputDirectory, fileName );
+            assertTrue( file.exists() );
+        }
+    }
+
     public void testNoTransitive()
         throws Exception
     {
         mojo.excludeTransitive = true;
         mojo.execute();
-        Iterator<Artifact> iter = mojo.project.getDependencyArtifacts().iterator();
 
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getDependencyArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertTrue( file.exists() );
@@ -156,10 +167,9 @@ public class TestCopyDependenciesMojo
         mojo.excludeTypes = "jar";
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertEquals( artifact.getType().equalsIgnoreCase( "jar" ), !file.exists() );
@@ -178,10 +188,9 @@ public class TestCopyDependenciesMojo
 
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertFalse( file.exists() );
@@ -190,10 +199,9 @@ public class TestCopyDependenciesMojo
         mojo.excludeTypes = "";
         mojo.execute();
 
-        iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertEquals( artifact.getType().equalsIgnoreCase( "jar" ), file.exists() );
@@ -209,10 +217,9 @@ public class TestCopyDependenciesMojo
         mojo.excludeArtifactIds = "one";
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertEquals( artifact.getArtifactId().equals( "one" ), !file.exists() );
@@ -231,10 +238,9 @@ public class TestCopyDependenciesMojo
 
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertFalse( file.exists() );
@@ -243,10 +249,9 @@ public class TestCopyDependenciesMojo
         mojo.excludeArtifactIds = "";
         mojo.execute();
 
-        iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertEquals( artifact.getArtifactId().equals( "one" ), file.exists() );
@@ -264,10 +269,9 @@ public class TestCopyDependenciesMojo
 
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertFalse( file.exists() );
@@ -276,10 +280,9 @@ public class TestCopyDependenciesMojo
         mojo.excludeGroupIds = "";
         mojo.execute();
 
-        iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertEquals( artifact.getGroupId().equals( "one" ), file.exists() );
@@ -295,10 +298,9 @@ public class TestCopyDependenciesMojo
         mojo.excludeGroupIds = "one";
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
 
@@ -313,10 +315,9 @@ public class TestCopyDependenciesMojo
         mojo.excludeGroupIds = "one,two";
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
 
@@ -332,10 +333,9 @@ public class TestCopyDependenciesMojo
         mojo.excludeClassifiers = "one";
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertEquals( artifact.getClassifier().equals( "one" ), !file.exists() );
@@ -354,10 +354,9 @@ public class TestCopyDependenciesMojo
 
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertFalse( file.exists() );
@@ -366,10 +365,9 @@ public class TestCopyDependenciesMojo
         mojo.excludeClassifiers = "";
         mojo.execute();
 
-        iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertEquals( artifact.getClassifier().equals( "one" ), file.exists() );
@@ -385,10 +383,9 @@ public class TestCopyDependenciesMojo
         mojo.useSubDirectoryPerType = true;
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File folder = DependencyUtil.getFormattedOutputDirectory( false, true, false, false, false, mojo.outputDirectory,
                                                                       artifact );
@@ -428,11 +425,9 @@ public class TestCopyDependenciesMojo
 
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
-
             String useClassifier = artifact.getClassifier();
             String useType = artifact.getType();
 
@@ -650,10 +645,9 @@ public class TestCopyDependenciesMojo
 
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertEquals( artifact.getScope().equals( "provided" ), !file.exists() );
@@ -673,10 +667,9 @@ public class TestCopyDependenciesMojo
 
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
             assertEquals( artifact.getScope().equals( "system" ), !file.exists() );
@@ -695,10 +688,9 @@ public class TestCopyDependenciesMojo
         mojo.execute();
         ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.excludeScope );
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
 
@@ -734,10 +726,9 @@ public class TestCopyDependenciesMojo
         mojo.execute();
         ScopeArtifactFilter saf = new ScopeArtifactFilter( mojo.excludeScope );
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName );
 
@@ -757,10 +748,9 @@ public class TestCopyDependenciesMojo
         mojo.project.setArtifacts( set );
         mojo.execute();
 
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false );
             File file = new File( mojo.outputDirectory, fileName.substring( 0, fileName.length() - 4 ) + ".pom" );
             assertTrue( file.exists() );
@@ -773,10 +763,9 @@ public class TestCopyDependenciesMojo
         mojo.prependGroupId = true;
         mojo.execute();
     
-        Iterator<Artifact> iter = mojo.project.getArtifacts().iterator();
-        while ( iter.hasNext() )
+        Set<Artifact> artifacts = mojo.project.getArtifacts();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = iter.next();
             String fileName = DependencyUtil.getFormattedFileName( artifact, false, true );
             File file = new File( mojo.outputDirectory, fileName );
             assertTrue( file.exists() );

Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/TestDependencyUtil.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/TestDependencyUtil.java?rev=1398935&r1=1398934&r2=1398935&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/TestDependencyUtil.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/TestDependencyUtil.java Tue Oct 16 19:19:00 2012
@@ -51,6 +51,8 @@ public class TestDependencyUtil
 
     Artifact snap;
 
+    Artifact snapResolvedVersion;
+
     Artifact release;
 
     Artifact sources;
@@ -72,6 +74,12 @@ public class TestDependencyUtil
 
         ah = new DefaultArtifactHandlerStub( "war", null );
         vr = VersionRange.createFromVersion( "1.1-SNAPSHOT" );
+        snapResolvedVersion = new DefaultArtifact( "test", "three", vr, Artifact.SCOPE_PROVIDED, "war", null, ah, false );
+        snapResolvedVersion.setResolvedVersion("1.1-20121003.035531-117");
+        artifacts.add( snapResolvedVersion );
+
+        ah = new DefaultArtifactHandlerStub( "war", null );
+        vr = VersionRange.createFromVersion( "1.1-SNAPSHOT" );
         sources = new DefaultArtifact( "test", "two", vr, Artifact.SCOPE_PROVIDED, "sources", "sources", ah, false );
 
         // pick random output location
@@ -195,6 +203,19 @@ public class TestDependencyUtil
         assertEquals( expectedResult, name );
     }
 
+    public void testFileNameUseBaseVersion()
+        throws MojoExecutionException
+    {
+        Artifact artifact = snapResolvedVersion;
+
+        String name = DependencyUtil.getFormattedFileName( artifact, false, false, true );
+        String expectedResult = "three-1.1-SNAPSHOT.war";
+        assertEquals( expectedResult, name );
+        name = DependencyUtil.getFormattedFileName( artifact, false, false, false );
+        expectedResult = "three-1.1-20121003.035531-117.war";
+        assertEquals( expectedResult, name );
+    }
+
     public void testTestJar()
     {
         ArtifactHandler ah = new DefaultArtifactHandlerStub( "test-jar", null );