Author: rfscholte Date: Tue Oct 16 20:47:22 2012 New Revision: 1398988 URL: http://svn.apache.org/viewvc?rev=1398988&view=rev Log: [MDEP-360] Allow using folder as dependency:get destination parameter
Modified: maven/plugins/trunk/maven-dependency-plugin/pom.xml maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestGetMojo.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=1398988&r1=1398987&r2=1398988&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/pom.xml (original) +++ maven/plugins/trunk/maven-dependency-plugin/pom.xml Tue Oct 16 20:47:22 2012 @@ -54,6 +54,9 @@ under the License. <contributor> <name>Bakito</name> </contributor> + <contributor> + <name>Kalle Korhonen</name> + </contributor> </contributors> <properties> Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java?rev=1398988&r1=1398987&r2=1398988&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java Tue Oct 16 20:47:22 2012 @@ -155,7 +155,7 @@ public class GetMojo private String artifact; /** - * The destination file to copy the artifact to, if other than the local repository + * The destination file or directory to copy the artifact to, if other than the local repository * * @since 2.4 */ @@ -272,7 +272,14 @@ public class GetMojo } try { - FileUtils.copyFile( toDownload.getFile(), new File( destination ) ); + if ( dest.isDirectory() ) + { + FileUtils.copyFileToDirectory( src, dest ); + } + else + { + FileUtils.copyFile( src, dest ); + } } catch ( IOException e ) { Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestGetMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestGetMojo.java?rev=1398988&r1=1398987&r2=1398988&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestGetMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestGetMojo.java Tue Oct 16 20:47:22 2012 @@ -28,6 +28,7 @@ import org.apache.maven.artifact.reposit import org.apache.maven.artifact.repository.layout.LegacyRepositoryLayout; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugin.testing.stubs.StubArtifactRepository; +import org.codehaus.plexus.util.FileUtils; public class TestGetMojo extends AbstractDependencyMojoTestCase @@ -49,7 +50,19 @@ public class TestGetMojo @Override public String pathOf( Artifact artifact ) { - return super.pathOf( artifact ).replace( ':', '_' ); + StringBuilder pathOf = new StringBuilder(); + pathOf.append( artifact.getGroupId() ) + .append( '_' ) + .append( artifact.getArtifactId() ) + .append( '-' ) + .append( artifact.getVersion() ); + if( artifact.getClassifier() != null ) + { + pathOf.append( '-' ) + .append( artifact.getClassifier() ); + } + pathOf.append( '.' ).append( artifact.getArtifactHandler().getExtension() ); + return pathOf.toString(); } } ); } @@ -75,6 +88,39 @@ public class TestGetMojo setVariableValueToObject( mojo, "transitive", Boolean.FALSE ); mojo.execute(); } + + /** + * Test destination parameter + * + * @throws Exception + */ + public void testDestination() + throws Exception + { + // Set properties, transitive = default value = true + setVariableValueToObject( mojo, "transitive", Boolean.FALSE ); + setVariableValueToObject( mojo, "repositoryUrl", "http://repo1.maven.apache.org/maven2" ); + setVariableValueToObject( mojo, "groupId", "org.apache.maven" ); + setVariableValueToObject( mojo, "artifactId", "maven-model" ); + setVariableValueToObject( mojo, "version", "2.0.9" ); + File output = new File( getBasedir(), "target/unit-tests/get-test/destination-file/maven-model-2.0.9.jar" ); + output.delete(); + setVariableValueToObject( mojo, "destination", output.getAbsolutePath() ); + + mojo.execute(); + assertTrue( output.exists() ); + + // Test directory + output = new File( getBasedir(), "target/unit-tests/get-test/destination-dir" ); + output.mkdirs(); + FileUtils.cleanDirectory( output ); + setVariableValueToObject( mojo, "destination", output.getAbsolutePath() ); + + mojo.execute(); + assertTrue( new File( output, "org.apache.maven_maven-model-2.0.9.jar" ).exists() ); + } + + /** * Test remote repositories parameter